Linq 是否可以通过编程方式查询在ADO.NET中添加了数据库表关系而不是在数据库本身中添加了数据库表关系的数据库?

Linq 是否可以通过编程方式查询在ADO.NET中添加了数据库表关系而不是在数据库本身中添加了数据库表关系的数据库?,linq,ado.net,navigation-properties,table-relationships,Linq,Ado.net,Navigation Properties,Table Relationships,我正在用C#和Razor在ASP.NET MVC3中开发一个web应用程序 应用程序必须使用一个现有的数据库,该数据库大约是8年前设计的,其中表之间没有物理关系。使用相同数据库的其他应用程序通过使用联接以编程方式创建关系 在我的应用程序中,我为一些数据库的表创建了一个ADO.NET模型。现在,为了利用内联LINQ表达式的潜力,特别是导航属性,我想在ADO.NET模型上创建关系 ADO.NET是否足够强大,可以将我使用关系的内联表达式转换为实际数据库可以理解的查询,而实际数据库中不存在这种关系 A

我正在用C#和Razor在ASP.NET MVC3中开发一个web应用程序

应用程序必须使用一个现有的数据库,该数据库大约是8年前设计的,其中表之间没有物理关系。使用相同数据库的其他应用程序通过使用联接以编程方式创建关系

在我的应用程序中,我为一些数据库的表创建了一个ADO.NET模型。现在,为了利用内联LINQ表达式的潜力,特别是导航属性,我想在ADO.NET模型上创建关系


ADO.NET是否足够强大,可以将我使用关系的内联表达式转换为实际数据库可以理解的查询,而实际数据库中不存在这种关系

ADO.NET中的关系可以是物理关系(数据库中有外键约束)或逻辑关系(关系仅在应用程序中定义)


您可以在设计器中手动添加关系,它们将具有导航属性。

表之间没有物理关系是什么意思?这是否意味着没有定义外键?如果是这样,您仍然可以生成JOIN语句。确切地说,SQL数据库中没有外键。我可以进行LINQ连接,但我不能使用导航属性,这些属性允许您通过使用点符号从一个表跳到另一个表。谢谢您的回答。然而,这不是我想要的。我想知道,如果外键只存在于ADO.NET模型中,而不存在于实际的SQL数据库中,那么使用LINQ是否可以正确执行查询。LINQ表达式将转换为SQL,并在服务器端进行过滤。换句话说,如果定义表之间的关系,您将受益于所需的导航属性,并且表达式将正确转换为SQL查询。也许这会有所帮助:“关系属性的存在在查询的结果端比作为查询本身的一部分更重要”。查看更多详细信息: