tag:blogger.com,1999:blog-7361892840793499128.post8471431562377322212..comments2024-02-15T01:02:26.245-08:00Comments on Leandro Tuttini Blog: [Entity Framework][Code First] Asociación uno a muchos (2/3)Anonymoushttp://www.blogger.com/profile/01910634216468650091noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-7361892840793499128.post-73734208843347811302014-03-07T03:59:20.755-08:002014-03-07T03:59:20.755-08:00hola cquispe
y te quedas con lo que el power tool...hola cquispe<br /><br />y te quedas con lo que el power tools te haya generado<br /><br />las herramientas pueden aproximar la definicion peor podrias aplciar cambios sobre esta<br />esta claro que esto que planteas es una relacion mucho a muchos en donde la tabla UserRole no deberia mapearse como entidad<br /><br />de porque esta tabla tiene un UseRoleId la verdad no lo veo correcto y tampoco deberia tener auditoria, ni un campos de estado, las relaciones entre entidades deben ser simples<br />no habias evaluado definir una relacion muchos a muchos entre estas entidades ?<br /><br />sino esta claro que vas a tener que programarte toda la relacion ya que serian dos relaciones uno a muchos<br />la propiedad no solo tiene un user y un rol sino que tiene estado y demas campos que la definen por eso es que no puedes asignar algo simple a esa entidad porque la relacion es compleja<br /><br />saludosAnonymoushttps://www.blogger.com/profile/01910634216468650091noreply@blogger.comtag:blogger.com,1999:blog-7361892840793499128.post-68340023367615884532014-03-06T10:48:18.889-08:002014-03-06T10:48:18.889-08:00Hola Leandro, el detalle es que las entidades no ...Hola Leandro, el detalle es que las entidades no lo definí manualmente, generé con EF Power Tools. A continuación te muestro las 3 entidades:<br /><br />public partial class User<br />{<br /> public User()<br /> {<br /> this.UserRoles = new List();<br /> }<br /><br /> public int UserId { get; set; }<br /> public string FirstName { get; set; }<br /> public string LastName { get; set; }<br /> public string Dni { get; set; }<br /> public string Address { get; set; }<br /> public string Email { get; set; }<br /> public System.DateTime BirthDate { get; set; }<br /> public string Gender { get; set; }<br /> public int SystemAccess { get; set; }<br /> public string Login { get; set; }<br /> public string Password { get; set; }<br /> public int State { get; set; }<br /> public int CreateUser { get; set; }<br /> public Nullable UpdateUser { get; set; }<br /> public System.DateTime CreateDate { get; set; }<br /> public Nullable UpdateDate { get; set; }<br /> public virtual ICollection UserRoles { get; set; }<br />}<br /><br /><br />public partial class Role<br />{<br /> public Role()<br /> {<br /> this.UserRoles = new List();<br /> }<br /><br /> public int RoleId { get; set; }<br /> public string Code { get; set; }<br /> public string Name { get; set; }<br /> public string Description { get; set; }<br /> public int State { get; set; }<br /> public int CreateUser { get; set; }<br /> public Nullable UpdateUser { get; set; }<br /> public System.DateTime CreateDate { get; set; }<br /> public Nullable UpdateDate { get; set; }<br /> public virtual ICollection UserRoles { get; set; }<br />}<br /><br />public partial class UserRole<br /> {<br /> public int UserRoleId { get; set; }<br /> public int UserId { get; set; }<br /> public int RoleId { get; set; }<br /> public int State { get; set; }<br /> public int CreateUser { get; set; }<br /> public Nullable UpdateUser { get; set; }<br /> public System.DateTime CreateDate { get; set; }<br /> public Nullable UpdateDate { get; set; }<br /> public virtual Role Role { get; set; }<br /> public virtual User User { get; set; }<br /> }<br /><br />Saludos...cquispehttps://www.blogger.com/profile/04227175179759439615noreply@blogger.comtag:blogger.com,1999:blog-7361892840793499128.post-64478552261447830922014-03-06T10:17:59.721-08:002014-03-06T10:17:59.721-08:00hola cquispe
pero esa entidad UserRole no define ...hola cquispe<br /><br />pero esa entidad UserRole no define la relacion muchos a muchos, porque si es asi como entidad no debes definirlo<br /><br />las relaciones entre User y Rol es directa por medio de propiedades del tipo ICollection<><br /><br />porque no defines una relacion mucho a muchos? y asi evitas la entidad UserRole<br /><br />saludosAnonymoushttps://www.blogger.com/profile/01910634216468650091noreply@blogger.comtag:blogger.com,1999:blog-7361892840793499128.post-32006707622282866392014-03-06T08:53:44.256-08:002014-03-06T08:53:44.256-08:00Hola leandro, disculpa que te moleste otra vez. Es...Hola leandro, disculpa que te moleste otra vez. Estoy utilizando tu repositorio genérico y a medida que voy haciendo uso de los métodos, tengo algunas dificultades: En este caso tengo una consulta:<br />Tengo 3 entidades: User, Role y UserRole(que nace de una relación N:N). Cuando hago uso del método List con includes, obtengo el resultado sin problemas, pero como valor de User y Role (propiedades virtuales de la entidad UserRole) me devuelve lo siguiente:<br />User: Entities.User<br />Role: Entities.Role<br /><br />No se si estoy haciendo mal los includes. Como podría hacer para que las propiedades tengan el valor ejemplo:<br />User: Carlos Perez<br />Role: Contador<br /><br />A continuación le muestro el código:<br /><b><br />public static List ListUserRole()<br />{<br /> return useRolRepository.List(new List>>() {x => x.Role, x => x.User});<br />}<br /></b><br /><br />Saludos y Gracias...cquispehttps://www.blogger.com/profile/04227175179759439615noreply@blogger.comtag:blogger.com,1999:blog-7361892840793499128.post-72680643524092271442013-07-26T09:57:52.275-07:002013-07-26T09:57:52.275-07:00Ok, espero Leo!!
Gracias!!Ok, espero Leo!!<br /><br />Gracias!!Patoshttps://www.blogger.com/profile/17105331408318350472noreply@blogger.comtag:blogger.com,1999:blog-7361892840793499128.post-35013706036907895102013-07-26T08:45:00.840-07:002013-07-26T08:45:00.840-07:00hola Patos
sabes que ese es todo un tema, justame...hola Patos<br /><br />sabes que ese es todo un tema, justamente estoy armando un articulo para las relaciones mucho a mucho donde planteo esto que comentas, porque es verdad no aplica exactamente como lo quieres realizar<br /><br />si me esperas al fin de semana lo publico<br /><br />saludosAnonymoushttps://www.blogger.com/profile/01910634216468650091noreply@blogger.comtag:blogger.com,1999:blog-7361892840793499128.post-8701092612301368992013-07-25T18:37:33.061-07:002013-07-25T18:37:33.061-07:00Hola Leo Te hago una consulta,
basada en el modelo...Hola Leo Te hago una consulta,<br />basada en el modelo de estos articulos de EF que publiscaste.<br /><br />Yo tengo dos entidaades con relaciones de muchos a muchos que son proveedores y marcas, <br /><br />suponiendo que el objeto marca ya existe, yo quiero hacer proveedor.marcas.add(objeto_marca);<br /><br /><br />repositorioProveedores.update(proveedor);<br /><br />pero no me toma el cambio, como hago para poder asociar estas dos entidades ?<br /><br />Desde ya muchas gracias!Patoshttps://www.blogger.com/profile/17105331408318350472noreply@blogger.comtag:blogger.com,1999:blog-7361892840793499128.post-55654328954416667982013-07-12T22:07:43.192-07:002013-07-12T22:07:43.192-07:00hola Patos
se que no es un tema simple de entende...hola Patos<br /><br />se que no es un tema simple de entender, tampoco me enfoque en estos puntos porque la idea era tratar EF<br /><br />para comprender esa parte primero debes conocer lo que es un Expression Tree<br /><br /><a href="http://msdn.microsoft.com/en-us/library/bb397951.aspx" rel="nofollow">Expression Trees (C# and Visual Basic)</a><br /><br />esta aporta dinamismo al codigo, ya que permite analizar la expression definida en el lambda y poder usarla para armar queries dinamica<br /><br />en este caso lo utilizo para poder hacer tipado la definicion del include y luego dentro del metodo parsear la expresion y obteniendo en este caso las propiedades que luego utilizare para definir el include de de EF<br /><br />es igualmente valido si quieres hacer que el include sea una lista de string, funciona perfectamente, solo que no haces que el repositorio sea tipado <br /><br />saludosAnonymoushttps://www.blogger.com/profile/01910634216468650091noreply@blogger.comtag:blogger.com,1999:blog-7361892840793499128.post-23825680167070334092013-07-12T14:50:22.783-07:002013-07-12T14:50:22.783-07:00Hola Leo!!
Soy yo otra vez, no me denuncies por a...Hola Leo!!<br /><br />Soy yo otra vez, no me denuncies por acoso ;) , los articulos son muy buenos y me sirvieron un monton y entendi todo hasta ahora ya que lo explicas de una manera muy buena, pero... lo que no entiendo bien es la parte del repositoriobase, si entiendo como funciona el patron no entiendo lo de las listas de expresiones y delegados del todo bien, por ejemplo <br /><br /> public T Single(Expression> predicate, List>> includes)<br /> {<br /> List includelist = new List();<br /><br /> foreach (var item in includes)<br /> {<br /> MemberExpression body = item.Body as MemberExpression;<br /> if (body == null)<br /> throw new ArgumentException("The body must be a member expression");<br /><br /> includelist.Add(body.Member.Name);<br /> }<br /><br /> using (LearningContext context = new LearningContext())<br /> {<br /> DbQuery query = context.Set();<br /><br /> includelist.ForEach(x => query = query.Include(x));<br /><br /> return query.FirstOrDefault(predicate);<br /> }<br /> }<br />no lo puedo terminr de entender, podris hacer cuando puedas un articulo sobre esto? <br /><br />Gracias!!!!Patoshttps://www.blogger.com/profile/17105331408318350472noreply@blogger.com