【发布时间】:2017-04-15 17:54:01
【问题描述】:
我正在处理包含大量数据的 50 多个表的应用程序。
假设我有两张桌子:
Parent { pID int (PK), pName varchar(30) }
和
Child { pID int (FK), cName varchar(30) }
这是我的查询:
using(MyDBContext ctx = new MyDBContext())
{
Child ch = ctx.Childs.Where( c => c.pID == 1).FirstOrDefault();
ch.cName = "ABCDEF";
ctx.SubmitChanges(); // <--- Executes but nothing changes...
}
我尝试了多个现有值,但 ctx.SubmitChanges() 在更新子记录时不起作用。有什么解决方法吗?
【问题讨论】:
-
我认为,您需要将“ch”的更改添加到“ctx”,然后您必须调用“SubmitChanges”。在您的查询中,您在本地创建“ch”作为子项,并更改本地子项“ch”的“cName”。使用“SubmitChanges”添加 ctx 的一些新更改,但不更改“ctx”,只更改本地子“ch”。我希望你知道我的意思。 ;)
-
不!那不是问题。我学到的是:首先,必须有一些东西来保存数据库中的数据。所以,这就是“ch”。其次,我在 Internet 上进行了搜索,并且 LinqToSQL 存在 FK 问题。
后来,我切换到实体 6.0 数据模型,但这完全从自动生成的视图中删除了相互连接的主表。所以,对我来说没用。 -
是Entity Freamwork 6吗?
-
@Vecchiasignora:Linq to SQL 类。
标签: c# sql linq sql-server-2012