繁体   English   中英

如何使用LINQ获取关联的表

[英]How to get associated tables with LINQ

假设我必须要有以下表格:“客户”(父)和“地址”(子)。 它们是关联的,因此它们之间存在1:1的关系。

   Table<Customer> table = db.GetTable<Customer>();

   var query = from c in table
               select p;

是否可以使用选定的客户表查询与“客户”关联的表,还是必须在单独的查询中获取所有地址表?

此外,如果我在客户表上使用DELETE命令,那么是否也删除所有关联的表?

提前致谢,

Prot

如果它们与外键相关,则应该非常简单。 地址应仅是客户的财产。

var query = from c in table
            select c.Address;

或者你可以用它做join有一个外键不存在。

var query = from c in table
            join address in [AddressTable] on c.AddressId equals address.Id
            select address;

您所指的DELETE类型称为级联删除。 您需要在外键上启用它(需要FK才能起作用)。 看到这个线程

您不必单独获取地址,如果您已在dbml中设置了关联(即,链接表的箭头),则应该可以仅lazy load地址。

Instellisense应该显示该属性;

  var query = from c in table
               select p.Address;

对于删除,在表本身的外键上设置一个on delete cascade ,这将在您每次删除客户记录时删除关联的地址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM