[英]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.