जब से तुम अन्य सुझाव और dbml के प्रबंधन के लिए चाल के लिए कहा ...
dbml फ़ाइलों डेटाबेस से ताजा कर रहे हैं, इस तरह के डिफ़ॉल्ट स्तंभ मान के रूप में कुछ स्कीमा सेटिंग्स जो वे पर लेने नहीं है, कर रहे हैं , आपको सेटिंग को मैन्युअल रूप से बदलने के लिए मजबूर कर रहा है। यह हर बार खोए गए घंटे का कारण बन सकता है जब आप डीबीएमएल को रीफ्रेश किए बिना याद करते हैं या याद करते हैं कि आपको मैन्युअल समायोजन करने की आवश्यकता है, और आपका कोड विफल हो रहा है।
इसके खिलाफ सुरक्षा के लिए, एक चाल एक इकाई परीक्षण लिखना है जो उन (मैनुअल) सेटिंग्स के लिए LINQ मेटाडेटा को जांचने के लिए प्रतिबिंब का उपयोग करती है। यदि परीक्षण विफल रहता है, तो यह एक वर्णनात्मक त्रुटि संदेश देता है, जो उपयोगकर्ता को कॉलम गुणों में उचित परिवर्तन करने के लिए निर्देश देता है। यह एक आदर्श समाधान नहीं है, और यदि आपके पास कई मैन्युअल सेटिंग्स हैं, तो यह सुविधाजनक नहीं हो सकता है, लेकिन यह आपके और आपकी टीम के लिए कुछ प्रमुख दर्द से बचने में मदद कर सकता है।
यहां एक नैनिट परीक्षण का एक उदाहरण है यह जांचने के लिए कि कॉलम डीबी से स्वत: उत्पन्न करने के लिए सेट है। http: // stackoverflow
[Test]
public void TestMetaData()
{
MyObj my_obj = new MyObj()
{
Foo = "bar",
};
Type type = MyObj.GetType();
PropertyInfo prop = type.GetProperty("UpdatedOn");
IEnumerable<ColumnAttribute> info = (IEnumerable<ColumnAttribute>)prop.GetCustomAttributes(typeof(ColumnAttribute), true);
Assert.IsTrue(
info.Any<ColumnAttribute>(x => x.IsDbGenerated == true),
"The DBML file needs to have MyObj.UpdatedOn AutoGenerated == true set. This must be done manually if the DBML for this table gets refreshed from the database."
);
}
स्रोत
2009-11-24 15:05:54
ड्यूप्स SQL करने के लिए LINQ बारे में अच्छी जानकारी प्रदान करता है।कॉम/प्रश्न/3468722/अपडेट-डीबीएमएल-फाइल, http://stackoverflow.com/questions/1716556/asp-net-mvc-best-practices-for-dbml-files –