में शामिल नहीं किया गया था, मैं ईएफ 4 कोड प्रथम पैटर्न का उपयोग करने की कोशिश कर रहा हूं। मेरे प्रवर्तन कोड इस प्रकार है:ईएफ 4 कोड पहले: मॉडल संगतता की जांच नहीं की जा सकती क्योंकि एडमेटाटाटा प्रकार मॉडल
बनाएं मॉडल बिल्डर:
private bool BuildSqlServerSession(DbModelBuilder builder)
{
var model =
builder.Build(new SqlConnection(@"connection string"));
var cm = model.Compile();
var context = new LittlePOSContext(cm);
var dbExists = context.Database.Exists();
_session = new EFSession(context);
return dbExists;
}
यह काम करता है जब मैं पहली बार के लिए कोड चलाएँ:
private static DbModelBuilder CreateModelBuild()
{
var builder = new DbModelBuilder();
//add entity classes about 12 of them
builder.Conventions.Remove<IncludeMetadataConvention>();
return builder;
}
सत्र बनाएँ। लेकिन जब दूसरी बार पर चल रहा है और एक वस्तु context.Add(myEntity)
का उपयोग कर रहा अपवाद निम्न प्राप्त जोड़ने की कोशिश कर:
Model compatibility cannot be checked because the EdmMetadata type was not
included in the model. Ensure that IncludeMetadataConvention has been added
to the DbModelBuilder conventions.
मैं निम्न पंक्ति को हटाने की कोशिश की है:
builder.Conventions.Remove<IncludeMetadataConvention>();
लेकिन मैं अभी भी त्रुटि मिलती है।
यह संगत है।समस्या यह है कि पहली बार जब आप इसे बनाते हैं, तो इसमें मॉडल परिवर्तनों को ट्रैक करने के लिए कोई तालिका नहीं है, इसलिए यह शिकायत करता है। एक बार जब डेटाबेस पहली बार ईएफ द्वारा बनाया जाता है, तो आप अपनी प्रारंभिक रणनीति को उस चीज़ पर वापस बदल सकते हैं जो यह था। –