我有两个表 Plants 和 Information。每个工厂都有很多信息,但每个工厂都有一个 MainInformation。所以两者之间存在一对多关系和一对一关系。 Information 表有一个 PlantID,Plants 表有一个 MainInformationID。我希望两个表中的两个字段都不是空值。但是现在您不能将这两条记录中的任何一条插入到它们的表中,因为每条记录都要求它们的字段不为空,这意味着它们需要先创建另一条记录才能创建它们自己。也许这不是一个好的数据库设计,应该改变一些东西? (我是数据库和 Entity Framework 的新手)
我尝试手动插入到数据库中,但我做不到。我还使用 EntityFramework 尝试了这段代码。
using (var context = new MyEntities())
{
var p = new Plant()
{
LatinName = "latinNameTest",
LocalName = "localNameTest",
CycleTime = 500
};
var i = new Information()
{
ShortDescription = "ShortDesc",
LongDescription = "LongDesc"
};
p.MainInformation = i;
i.Plant = p;
context.AddToPlants(p);
context.AddToInformation(i);
context.SaveChanges();
}
最佳答案
其中一个
- 1-1 FK 列必须为 NULL
- 必须禁用 FK 以允许父项在子项之前插入
- 您有一个虚拟信息行,默认情况下在 FL 列中使用
SQL Server 不允许在没有“代码更改”权限的情况下进行延迟约束检查,因此即使包装在事务中也不起作用
听起来像 EAV 模式,但还有其他问题
关于c# - 数据库双连接关系插入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2396263/