【发布时间】:2015-06-23 08:00:53
【问题描述】:
我在更新实体框架模型中的数据时遇到问题。我在模型中有几张表(Users、UserActivity 和 Orders)。我在表格之间添加了关联,一个在Users 和UserActivity 之间,一个在Users 和Orders 之间。关联通过列UserID。这两个关联已插入到我的用户表中的两个虚拟列:
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 解决了我的问题。现在它工作正常。
【问题讨论】:
-
你真的应该包括实体,没有它们很难诊断。
-
您确定您的数据库是最新的吗?如果您正在使用迁移,也许您应该先运行更新数据库。
-
发布 SQL 表(如果有)并发布模型的整个代码
-
填充并查看 chechUser 后,列名是什么?您的模型中的列名称是什么?
-
我想发布我的模型的图像,但我没有足够的声誉(我需要 10 个,而我的是 9 个)。所以我会写列:用户有列-用户ID、姓名、姓氏。 UserActivity 有列: - UserID、LogINTimeDate、ChangedNameTimeDate、ChangedSurnameTimeDate,Orders 有列 - UserID、FirstOrder、LastOrder。
标签: c# sql linq entity-framework