首页 新闻 会员 周边

使用EntityFrame 时,怎么才能不检查属性字段是否和数据库对应?一致报错。

0
[已解决问题] 解决于 2013-11-19 14:39

EntityFrameWork 时,已经存在数据库,通过配置实体映射到数据库,但是只有实体属性完全和数据库字段对应时没问题,如果实体属性多于数据库字段,就会报超出部分的猎命无效,可是我配置映射时,只配了数据库有的字段额,其余的没配啊,该怎么不去检查实体和数据库字段是否一致呢?

ToBeStrong的主页 ToBeStrong | 初学一级 | 园豆:193
提问于:2013-08-09 22:07
< >
分享
最佳答案
0

可以“忽略”这些实体属性,比如

modelBuilder.Entity<A>().Ignore(a => a.MyProperty);
奖励园豆:5
dudu | 高人七级 |园豆:31003 | 2013-08-09 22:33

嗯,非常感谢额,终于解决问题了。 不过还有个疑问请教下,我看以前的一个项目,没有这个设置,可以在实体类中 任意加字段,运行时也不会报错(自己可以随意加,没有Ignore这个歌属性),不知道为什么。。

ToBeStrong | 园豆:193 (初学一级) | 2013-08-10 10:26

@ToBeStrong: 那个项目也用了EF吗?

dudu | 园豆:31003 (高人七级) | 2013-08-10 10:30

@dudu: 嗯,对的。。通过映射实体和数据库,通过ef来操作的。

ToBeStrong | 园豆:193 (初学一级) | 2013-08-10 15:42

@ToBeStrong: 可能那个项目只select了指定的字段

dudu | 园豆:31003 (高人七级) | 2013-08-10 18:20

@dudu: 这个倒不是,因为后又加的那些字段都是必须的,有没有其他方式来  指定只映射指定的字段呢?(项目中是   指定属性——列, 然后把映射的对象加入 modelBuilder中)。

ToBeStrong | 园豆:193 (初学一级) | 2013-08-10 20:06

@ToBeStrong: 之前那个项目用的是Entity Framework Code First吗?

dudu | 园豆:31003 (高人七级) | 2013-08-10 20:38

@dudu:  应该是Code only吧,数据库还是要自己去  创建 和添加字段的。

ToBeStrong | 园豆:193 (初学一级) | 2013-08-10 21:43

@ToBeStrong: 

试试MapSingleType(),示例代码:

builder.Entity<Customer>() 
   .HasKey(c => c.ID) 
   .MapSingleType(c => new { 
         cid = c.ID, 
         nme = c.Name 
      } 
   ) 
   .ToTable(“dbo.custs”);

来源:Code Only – Further Enhancements

dudu | 园豆:31003 (高人七级) | 2013-08-10 21:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册