让我说我必须表:“客户”(父母)& “地址”(孩子)。它们是相关联的,因此它们之间存在1:1的关系。
Table<Customer> table = db.GetTable<Customer>();
var query = from c in table
select p;
是否有可能使用选定的Customer-table查询与“Customer”关联的表,或者是否必须在单独的查询中获取所有Address-table?
此外,如果我在Customer-table上使用DELETE命令,是否也会删除所有关联的表?
提前致谢,
普罗特
答案 0 :(得分:1)
如果它们与外键有关,那么它应该非常直接。地址应该只是客户的财产。
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才能工作)。请参阅this thread。
答案 1 :(得分:0)
您不必单独取出地址,如果您在dbml中设置了关联(即链接表格的箭头),您应该只能lazy load
地址。< / p>
Instellisense应该显示属性;
var query = from c in table
select p.Address;
对于删除在表上的外键上设置on delete cascade
,这将在每次删除客户记录时删除关联的地址。