我有两个表,其中一个用户可以拥有多个联系人:
User(UserId, UserName)
Contact(UserId, ContactId)
假设我想通过Userid获取用户表中UserNames的所有ContactNames。
请注意,在当前数据上下文中无法看到Contact表,它已经变成了多对多的关系
我该如何进行查询?
如果我需要插入或删除怎么办?
我尝试了“include”方法,但它不起作用。你有什么建议吗?
非常感谢你。
答案 0 :(得分:2)
var id = 1; // id to find
context.Users
.Where(x=>x.UserId = id)
.SelectMany(x=>x.Users)
.Select(x=>x.UserName)
.ToArray();
从db生成后,您的模型有2个子集合:Users和Users1。
您可以通过编辑器重命名它们以表示对Contacts和ContactsFor的含义。
如果你仍然希望有2种类型而不是Type +(多对多参考),那么在编辑器中你可以删除引用,创建新实体联系人,设置所有映射,添加引用。完成所有这些后 - 您将看到如下模型:
实现这一目标:
Contact
Contact
但这并不容易。