Tag: ef code first

使用存储库模式实现WCF数据服务

我们在ASP.NET MVC 3应用程序中使用存储库模式。 这意味着,尽管我们使用EF 4.1 Code First来访问后端中的数据,但所有MVC控制器都是通过通用存储库类而不是直接通过DbContext子类来实现的。 简化的代码段: public class MyEntityContext : DbContext, IMyEntityContext { public IDbSet MyEntities { get; set; } … } public class MyEntityRepository : IMyEntityRepository { private IMyEntityContext _context; public IQueryable MyEntities { return _context.MyEntities; } … } public class MyEntityController : Controller { private MyEntityRepository _repository; … } 我们为每个依赖项使用接口和dependency injection。 […]

同一个表中的两个一对多关系

我有一个名为SystemAccount的表,它(直到最近)有一个MasterAccountID ,它指向其父帐户(显然是一个int? )。 我的客户现在告诉我,有时某个帐户可能有2个父帐户(没有比这更多)。 我一直在尝试在我的SystemAccount类中进行调整,但它没有产生我想要的关系。 这是类代码的一部分: [ForeignKey(“MasterAccount”)] public int? MasterAccountID { get; set; } [ForeignKey(“SecondMasterAccount”)] public int? SecondMasterAccountID { get; set; } public virtual SystemAccount MasterAccount { get; set; } public virtual SystemAccount SecondMasterAccount { get; set; } public virtual List AllSubAccounts { get; set; } public virtual List SecondarySubAccounts { get; set; } 当我这样做时,我在表中获得4个FK,其中2个是自动生成的( […]

映射到现有数据库表

我Entity Framework 4.1 code first使用Entity Framework 4.1 code first连接到现有的数据库。 我首先使用的表叫做Bank 。 我还有一个Bank class作为我的域模型。 这是我映射我的类和表的方式: public class HbfContext : DbContext { public DbSet Banks { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity().ToTable(“Bank”); } } 我的银行表: BankID INT BankName VARCHAR(50) 我的Bank类看起来像这样: public class Bank { public int Id { get; set; } public string […]

entity framework4.1代码优先 – 应初始化许多关系ICollections

在Entity Framework 4.1中创建POCO时,是否应该对类进行编码以初始化Many关系,或者是否有某些理由允许Entity Framework控制这些属性? public class Portfolio { private ICollection _visits; public virtual ICollection Visits { get { if (_visits == null) { _visits = new List(); } return _visits; } set { _visits = value; } } } 要么 public class Portfolio { public virtual ICollection Visits { get; set; } } 还有更好的模式吗?

在ASP.Net MVC 3项目中无法使用Entity Framework进行SaveChanges

学习asp.net mvc 3 + EF代码优先。 我是两个都是新手。 我的例子是微不足道的,但我仍然无法使其发挥作用。 缺少一些简单而明显的东西…… 我有一节课: public class Product { [HiddenInput(DisplayValue = false)] public int ProductID { get; set; } [Required(ErrorMessage = “Please enter a product name”)] public string Name { get; set; } [Required(ErrorMessage = “Please enter a description”)] [DataType(DataType.MultilineText)] public string Description { get; set; } [Required] [Range(0.01, double.MaxValue, ErrorMessage […]

entity framework6首先将多个表与一个外键关系代码

我想知道是否有人可以建议我如何在EF6中首先使用代码完成以下操作 如果我将Table_3作为列表添加到我的实体中的Table_1和Table_2。 EF会自动为Table_3中的两个表生成外键列,而不是识别它们属于同一类型。 我的模型类设置如下。 public interface IParent { int ID { get; set; } List Children { get; set; } } public class Table_1 : IParent { [Key] public int ID { get; set; } public string Name { get; set; } public virtual List Children { get; set; } } public class Table_2 : […]

Ef代码首先在原则和依赖之间存在差异

我有这些实体: public class StudentBag { public int BagIdentifier { get; set; } public Student Student { get; set; } } public class Student { public string Name { get; set; } public StudentBag StudentBag{get;set;} } 我想配置一对一的关系。 我的问题是,如果有以下区别: modelBuilder.Entity() .HasRequired(t => t.Student) .WithRequiredDependent(t=>t.StudentBag); modelBuilder.Entity() .HasRequired(t => t.Student) .WithRequiredPrincipal(t => t.StudentBag); 我会很感激,如果有人会解释它是什么意思原则和依赖……

在EF Code First中映射自引用实体

在我的数据库中,我有一个表类别,列ID,CategoryName,ParentCategoryId,其中ParentCategoryId对Category.Id有约束。 我首先使用实体​​框架代码,实体看起来像: public class Category { public long Id { get; private set; } public string CategoryName { get; private set; } public long? ParentCategoryId { get; private set; } public Category ParentCategory { get; private set; } public virtual ICollection SubCategories { get; private set; } } 如果我尝试对此运行查询,我会得到exception: The relationship ‘ComplaintModel.FK_Complaint_Category’ was not loaded […]

外键与独立关系 – entity framework5有改进吗?

在使用Entity Framework时,我已经阅读了几篇关于外键与独立关系概念的文章和问题 。 而且我仍然不能100%确定要走哪条路……我宁愿不通过拥有将在FK关系中使用的属性来“污染”我的域名POCO,因为我已经有一个属性引用“有一个”宾语。 我的问题是(看着你@EFTeam,@ Ladislav Mrnka) 在即将到来的Entity Framework v5中,这个主题有什么改进吗? 如果我使用FK而不是独立关联(特别是代码优先),是否有更多的优势?

为什么我的EF4.1关系在赋值空值时没有被设置为null?

在我的系统中,我有任务,可以选择分配给联系人。 所以在我的业务逻辑中,我有以下代码: if (_contactChanged) { task.Contact = contact; } 如果未指定联系人,则contact变量为null。 当我提交更改时,这应该会使联系人关系无效,但是我注意到99%的时间没有发生这种情况(我已经看到它发生过一次,但是在经过一遍又一遍这段代码之后并不是一贯的)。 当我调试时,我已经validation_contactChanged为true并且内部代码没有被命中。 但是,在我过去task.Contact = contact;之后。 task.Contact = contact; 我注意到,当contact是null时, task.Contact是类型 {System.Data.Entity.DynamicProxies .Contact_4DF70AA1AA8A6A94E9377F65D7B1DD3A837851FD3442862716FA7E966FFCBAB9} 并且仍然有以前的数据绑定它。 为什么代理没有设置为null,我怎样才能让它正常工作?