请问一个entity framework新增数据的问题

请问EF在新增数据的时候,怎么排除掉某个字段不插入呢?

比如我有一个实体类
public class1
{
public string A{get;set;}
public string B{get;set;}
}

然后我在新增的时候,EF就会自动生成一个insert语句
insert into class1(A,B) ……

但我想生成的insert 语句中不包括B字段,即insert into class1(A)

请问大家要怎么实现呢?
...全文
118 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
惟楚有才 2014-08-13
  • 打赏
  • 举报
回复
codefirst中在映射的时候也就是在继承EntityTypeConfiguration<>这个的时候属性设置 Ignore(b => b.BookStatus); 用ignore就是排除字段不让在数据库中生成的这个字段的 如果是数据库中有的字段你不让插入的那么你可以再post到后台的时候拼接成Insert的Model时不给这个赋值 或者手动把这个值设为空 其实插入数据时你来操作Model中哪些写入数据库的 重新再Action中拼接成你想要的Modle然后调用Insert就行了
  • 打赏
  • 举报
回复
我是用codefirst的,不知道这个会不会和楼上两位说的有些不一样?
  • 打赏
  • 举报
回复
引用 2 楼 ayanamireizero 的回复:
那你在view里面就不要有@Html.TextBoxFor(model=>model.B) 自然在controller里的db.B.add(model)就不会添加B字段的数据
我是使用 @Html.DisplayFor(m => m.B),但一样会在生成insert中。
  • 打赏
  • 举报
回复
引用 1 楼 yaotomo 的回复:
假设表名就是class1 不给B字段赋值就行了 class1 c = new class1(); c.A = "valA"; context.class1.Add(c); context.SaveChanges();
不行,不赋值照样生成了。
ayanamireizero 2014-08-12
  • 打赏
  • 举报
回复
那你在view里面就不要有@Html.TextBoxFor(model=>model.B) 自然在controller里的db.B.add(model)就不会添加B字段的数据
yaotomo 2014-08-12
  • 打赏
  • 举报
回复
假设表名就是class1 不给B字段赋值就行了 class1 c = new class1(); c.A = "valA"; context.class1.Add(c); context.SaveChanges();

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧