2012-01-14 95 views
0

我想从我的SQL Server数据库创建一个Linq to Entity模型,并且大多数关系都没有被传递。有四个关系正在通过,这是非常奇怪的,因为我以同样的方式完成所有关系。我使用SQL Server中的图表通过将外键拖放到主键表中来创建所有关系。不从SQL Server传递到Linq到实体模型的关系

我试图看看正在传递的关系,看看是否有任何区别,但我无法找到任何。我甚至删除了一个新的关系,但没有运气。

这个数据库可以完美地处理Linq To SQL数据模型,所以我不认为这是数据库设计的问题,但我可能是错的。

在SQL图表视图中甚至是VS 2010中服务器资源管理器中的数据库图表都看起来很完美,但L2E模型没有关系。

谢谢你的时间!

+0

你能从数据库更新你的实体模型吗? – 2012-01-15 20:46:43

回答

0

对于SQL中的每个关系,确保引用的表具有主键。

让我们考虑下面的例子:我们有InvoiceCustomer表。 Invoice有一个名为CustomerId的列,其中引用Customer表中的Id列。

在这种情况下,Customer表应在Id上设置主键,以便Entity Framework正确检测关系。

注:如果发现这样的情况下(没有主键的表),它可能是最好重新从头开始创建表(生成创建脚本,改变scrips包括主键,运行脚本)和然后尝试更新EF模型。