使用Linq更新实体框架模型

时间:2015-06-23 08:00:53

标签: c# sql linq entity-framework

我在实体框架模型中更新数据时遇到问题。我在模型中有几个表(UsersUserActivityOrders)。我在表格之间添加了关联,一个在UsersUserActivity之间,另一个在UsersOrders之间。这些关联是通过UserID列。这两个关联已经在我的Users表中插入了两个虚拟列:

public virtual UserActivity UserActivity { get; set; }

public virtual Orders Orders { get; set; }

问题如下:当我编写代码来更新表用户

var context1 = new Entities1();

var chechUser = (from c in context1.Users
                 where c.Username == LabelUsername.Text
                 select c).Single();

chechUser.Name = TextBoxNewName.Text;
context1.SaveChanges();

当我尝试更新实体时,会出现以下错误:

  

列名称无效' UserActivity_UserID'。   列名称无效' Orders_UserId'。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。   异常详细信息:System.Data.SqlClient.SqlException:列名称无效' UserActivity_UserID'。   列名称无效' Orders_UserId'。

有人可以告诉我该怎么做吗?

谢谢大家的帮助。我已经通过将这两列添加到SQL DB来解决了我的问题。现在它工作正常。

2 个答案:

答案 0 :(得分:1)

您需要使用以下列更新SQL Server:UserActivity_UserID,Orders_UserId。

或者在代码中删除这两列(将数据库再次映射到edmx文件)。

答案 1 :(得分:0)

我认为您的列名在应用程序端和数据库端有所不同。因此,从任何一个结束时将它们改为相同。