当前位置:编程学习 > C#/ASP.NET >>

Entity Framework, 多对多关系,查询时的问题

--------------------编程问答-------------------- 用Linq join的用法,做个连表查询。。。 --------------------编程问答-------------------- var query=from ur in UserRoles
          join u in User
          on ur.UserId equals u.Id
          join r in Role
          on ur.RoleId equals r.Id
          where u.UserName="name"
          select new {u,r}; --------------------编程问答-------------------- 哪来的UserRoles?
codefirst 自动生成关联表 --------------------编程问答-------------------- 是的 codefirst 会自动生成表的 --------------------编程问答-------------------- EF 可以做到的
你得USER 对像的时候,你就直接  User. Roles  就可以了。
EF 会自动用外键去关联的 --------------------编程问答-------------------- 不会自动关联,我也想知道 --------------------编程问答-------------------- public virtual IList<Role> Roles { get; set; }


这个为什么加virtual 啊? 还要用IList<Role>  


都是为了节省内存?

引用楼主 wlmstar 的回复:
有一个场景,3张表,User{Id,UserName,Password}, Role{Id,RoleName}, UsersInRoles{UserId,RoleId},
可见:User 表和 Role表是通过 UsersInRoles 引用2个表外键,来维护一个多对多的关系。
以下是我写的适配EF的代码,在OnModelCreating 方法中我维护了这样的关系。
并且当我测试对已存在的U……
--------------------编程问答-------------------- Trips 和Activities多对多的关系,多对多实现查询
var tripWithActivities = context.Trips

.Include("Activities") --------------------编程问答-------------------- 楼主要是解决了,通知下我。我也这问题 --------------------编程问答--------------------

//初始化
var marine_user = this.Database.GetQueryable<marine_User>();
var marine_role = this.Database.GetQueryable<marine_Role>();
var marine_permission = this.Database.GetQueryable<marine_Permission>();

//查询出拥有指定权限的角色列表
var queryRole = from p in marine_permission
                from r in marine_role
                from rp in r.marine_Permission
                where rp.PermissionID == p.PermissionID && p.Namepace + "." + p.Controller + "." + p.Action + "," + p.Assembly == actionName
                select r;

//查询出拥有 queryRole 角色的用户列表
var queryUser = from u in marine_user
                from r in queryRole
                from ur in u.marine_Role
                where ur.RoleID == r.RoleID
                select u;

传送门:
http://www.cnblogs.com/cjnmy36723/archive/2011/07/26/2117089.html --------------------编程问答--------------------

var result=from c in entity.User
           from r in c.Roles 
           where 你的条件

<a href="http://www.cnblogs.com/xcj1989/archive/2012/03/10/entity_framework_many_to_many_select.html">你可以参考这里</a> --------------------编程问答-------------------- --------------------编程问答-------------------- 楼主能给个你  这个项目的列子么  谢谢 349398998@qq.com --------------------编程问答-------------------- 还没解决?
补充:.NET技术 ,  LINQ
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,