Tag: entity relationship

EF4.1(代码优先) – 如何指定复合关系

在Linq to SQL中,我可以指定一个不必依赖于数据库中存在的外键和pks的关系,这对于创建这样的复合关系非常有用: public class Equipment_CableNormalised { … [Association(ThisKey = “EquipmentId,PortNumber”, OtherKey = “EquipmentId,PortNumber”, IsForeignKey = false)] public List EquipmentPorts { get; set; } } 然后生成类似于” .. join EquipmentPorts EP on EP.EquipmentId = blah and EP.PortNumber = Blah”的sql。 我可以在EF4.1中使用相同的东西(使用注释或流畅的api)吗? 我知道你可以指定复合键并使用[Keys]和[ForeignKeys]属性,但这种关系不会映射到键…

C#Entity Framework我们应该使用POCO.Id还是仅使用POCO设置关系?

我有一种服务方法的情况,其中将POCO指定为另一个POCO的子对象不能按预期工作。 我正在使用Entity Framework 4。 public void ChangeOrderCurrency(Currency currency) { order.CurrencyId = currency.Id; order.Currency = currency; // other stuff related to exchange rates etc } 哪个用于设置关系更正确? order.CurrencyId = currency.Id或order.Currency = currency ? 在当前通过所有unit testing的代码中,有时行order.Currency = currency将orderCurrencyId和order.Currency设置为NULL

EF 4.1 Code First:类型中的每个属性名称在查找表关联上必须是唯一错误

这是我第一次尝试创建自己的EF模型,我发现自己试图使用Code First创建查找表关联,因此我可以访问: myProduct.Category.AltCategoryID 我已经设置模型和映射,因为我理解是正确的,但继续得到错误0019:类型中的每个属性名称必须是唯一的。 已定义属性名称“CategoryID” 我的代码中表示了以下模型: [Table(“Product”, Schema=”mySchema”)] public class Product { [Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None)] public int ProductID { get; set; } public int CategoryID { get; set; } public virtual Category Category { get; set; } } [Table(“Category”, Schema=”mySchema”)] public class Category { [Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None)] public int CategoryID { get; set; } public string Name […]

当仅填充相关对象的ID时,不加载导航属性

我正在努力建立多对一的关系。 表示“many”的实体具有指向父实体的导航属性。 它看起来像这样: public abstract class BaseEntity { /// /// Key Field for all entities /// /// [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } /// /// Date entity was created /// public DateTime DateCreated { get; set; } /// /// Last date Modified /// public DateTime DateModified { get; set; } /// /// […]

保存两个实体之间的关系和NN关联

我有一个带有poco对象的Entity Framework 4.0。 edmx模型文件是从数据库生成的。 这个datacontext是通过WCF服务访问的,它只是意味着我收到了一些对象,我需要将它们附加到当前的datacontext(或者用密钥对应重新加载它们)。 一切似乎工作正常,除了一个案例: 我在两个表之间有一个NN关系,所以我有一个关联表,除了两个表的ID之外没有任何字段: LINQ将此转换为以下架构,这似乎是正确的。 当我检索数据时没有问题,我自己插入Right_group的数据被正确地转换为“我的权利/群组集合中的新对象”。 但是,如果我尝试修改某些内容并保存,则无效 public void SaveRights(Group group, List rights){ //here, group and rights are objects attached to the database group.Rights.Clear(); group.Rights.AddRange(rights); _dataContext.SaveChanges(); } 所以我的问题是:如何保存这两个对象的“关系”? 谢谢!

ASP.NET MVC中的模型关系

我最近开始评估ASP.NET MVC。 虽然为仅具有原始属性的模型创建控制器和视图非常简单快捷(如官方页面中的入门video中所示),但我没有找到任何使用复杂类型引用的好方法。 比方说,我有这些模型: public class Customer { public int Id { get; set; } public string Name { get; set; } public Address Address { get; set; } public IList Orders { get; set; } } public class Address { public int Id { get; set; } public string ….. ….. } public class […]

使用entity framework加载嵌套实体/集合

我试图在一次调用中急切地加载所有相关实体或实体集合。 我的实体看起来像: Class Person { public virtual long Id { get; set; } public virtual string FirstName { get; set; } public virtual string LastName { get; set; } } Class Employee { public virtual long Id { get; set; } public DateTime AppointmentDate { get; set; } public virtual ICollection Titles { get; set; […]