62,041
社区成员
发帖
与我相关
我的任务
分享
public class XXX
{
private string _a;
public string A{get{ return _a;};set{_a=value;};}
public int B{get; set;}
public DateTime C;
public string D{
get{ return C.ToString();}
set{ C = DateTime.Parse(value); }
}
}
数据库表结构应该针对的是最底层的“字段”而创建,而不应该针对“属性”映射。针对属性而建数据表,是一个很不好的方式。使用了很不好的方式来识别数据库表的字段,那么就需要你用一堆配置。
其它方面也是如此。EF 的底层理念不太恰当,因此无法以“默认配置”来正确操作。它让人进行一大堆配置才能比较合理地操作。这些配置看上去高大上,其实是匹配垃圾理念的。public class XXX
{
private string _a;
public string A{get;set;}
public int B{get; set;}
public DateTime C;
public string D{
get{ return C.ToString();}
set{ C = DateTime.Parse(value); }
}
}
只要将这样的对象执行DbContext.Insert(obj);
,第一次涉及某个类型的对象时,那么就应该自动(根据是否需要而)产生 XXX 表,自动产生准确的 _a、B、C 三个字段,而不会多余地产生 A 和 D 字段。
而 EF 的异常烦琐之处,就在于它没有非常恰当的“默认”情况,什么都要程序员来配置。一个好的配置,前提是不配置也能自动启用那些千锤百炼而产生的默认配置。如果依赖于配置,那就说明它默认的配置都是垃圾。