Tag: code first

如何使用Code First Entity Framework 4.1获取完整对象

我试图作为JSON返回完全深的对象(填充所有外键关系)但我得到所有引用对象的空值。 以下是获取对象的调用: public ActionResult GetAll() { return Json(ppEFContext.Orders, JsonRequestBehavior.AllowGet); } 这是Order对象本身: public class Order { public int Id { get; set; } public Patient Patient { get; set; } public CertificationPeriod CertificationPeriod { get; set; } public Agency Agency { get; set; } public Diagnosis PrimaryDiagnosis { get; set; } public OrderApprovalStatus ApprovalStatus { get; […]

entity framework6从同一实体对象创建两个表

我想知道是否可以从一个已定义的实体对象类创建两个表实例。 例: public class EntityA() { public String name {get; set;} public String value {get; set;} } public class MyDbConext : DbContext { public DbSet instance1{ get; set; } public DbSet instance2{ get; set; } } 我要做的是创建两个具有不同表名的实体A实例。 这可能与代码第一entity framework? 我觉得只需要创建另一个扩展实体EntityA的类来创建同一个实体的另一个实例似乎很乏味。 期望的输出: 从EntityA类创建“Instance1_Table” 从EntityA类创建“Instance2_Table” DBConext中的代码将引发exception。 任何建议表示赞赏,谢谢,D

EF6 CodeFirst一对多MySQL外键约束失败

我正在从现有数据库到CodeFirst进行映射,我遇到了一对多关系的问题。 System.Data.Entity.Infrastructure.DbUpdateException:更新条目时发生错误。 有关详细信息,请参阅内部exception —> System.Data.Entity。 Core.UpdateException:更新条目时发生错误。 有关详细信息,请参阅内部exception —> MySql.Data.MySqlClient.MySqlException:无法添加或更新子行:外键约束失败 我有一个像这样的T_USER实体。 public partial class T_USER{ public T_USER(){ this.T_OBJECTS = new HashSet (); this.T_OBJECTS1 = new HashSet (); } [Key] public int ID { get; set; } public string Name { get; set; } public virtual ICollection T_OBJECTS { get; set; } public virtual ICollection T_OBJECTS1 { […]

entity framework代码第一个铸造列

我上课了 public class Foo { public int UserId { get; set; } } 我正在使用代码第一个流畅的映射将其映射到数据库。 Property(i => i.UserId) .HasColumnName(“userno”); 唯一的问题是userno实际上是数据库中的char(10)。 我如何进行铸造或转换此类型? 因为我目前得到这个错误。 ‘Foo’上的’UserId’属性无法设置为’String’值。 您必须将此属性设置为“Int32”类型的非null值。 谢谢

从控制器更新DbSet 项的值 – C#,MVC,Code First

这是我的问题:我有一个MVC3 C#应用程序,我需要从编辑控制器更新DbSet中的值,因此T项的值将被替换为新值。 我不想删除该项目并再次添加。 我无法弄清楚如何做到这一点。 DbSet似乎没有像索引那样的东西。 这是我的编辑控制器: public class ItemController : Controller { private SESOContext db = new SESOContext(); private FindQrs fqr = new FindQrs(); [HttpPost] public ActionResult Edit(Item item) { if (ModelState.IsValid) { db.Entry(item).State = EntityState.Modified; Qr qr = fqr.FindQr(item.QR); // update somewhere here db.SaveChanges(); return RedirectToAction(“Index”); } ViewBag.SetID = new SelectList(db.Sets, “SetID”, “Name”, item.SetID); […]

EF 5-6.1.1中的NullReferenceException,具有相同类型的两个导航属性

我想首先谈谈我有一个解决这个问题的方法 – 但我今天花了几个小时搞清楚exception的原因,所以我想我会分享 给定域中的两个实体: public class User { public int Id { get; set; } public string Name { get; set; } } public class Ticket { public int Id { get; set; } public string Name { get; set; } public virtual User Owner { get; set; } public int? LockedByUserId { get; set; […]

entity framework – 外键组件…不是类型的声明属性

我有以下模型 public class FilanthropyEvent : EntityBase, IDeleteable { public int Id { get; set; } public string Name { get; set; } public DateTime EventDate { get; set; } public string Description { get; set; } public decimal Target { get; set; } public decimal EntryFee { get; set; } public bool Deleted { get; […]

表映射问题

我在当前项目中使用entity framework4,从几个表中读取数据。 比较使用ADO.net,EF非常简单,只需简单的代码即可完成大量的工作。 但是有一个问题…… e,g有退出表调用表“MTable”我只想从该表中查询两列,但是这个表与其他两个也正在处理它的ppl共享。 他们可能会在此表上添加列或修改约束。 我确定只有一件事是,我要查询的两列他们不会删除它或重命名它。 我的应用程序现在正在运行,但有时会因为我从数据库模式生成代码而中断,每次有人对“MTable”进行更新时,我需要更新应用程序的映射。 有没有办法做“Code-fist”maping,允许我写一个简单的模式映射到“MTable”,并且只映射两列,这样我就可以不管其他ppl在“MTable”上做了什么? ? 谢谢

inheritanceEF代码优先

我有一个基础对象,我不想在数据库中作为一个实体映射,我只希望将属性添加到在数据库中映射的对象: 没有映射的对象(不知道它是否重要但是baseobject在另一个程序集中): public class BaseObject { public virtual string Prop1 { get; set; } public virtual string Prop2 { get; set; } } 映射对象: public class ChildObject : BaseObject { public virtual string Prop3 { get; set; } public virtual string Prop4 { get; set; } public virtual string Prop5 { get; set; } } […]

EF6 CodeFirst我的 Id列不会像标识列那样自动递增

我有几个类需要从一个包含Id的公共基类派生。 暂时忽略除了其中一个之外的其他所有内容,让我们说: public class MyBase { [Key] public int Id { get; set; } } public class MyName : MyBase { public string Name { get; set; } } 我的上下文(DataContext)看起来像这样: public DbSetMyNames { get; set; } // to avoid having EF make a MyBases table and instead map // MyBase.Id into MyNames and my other […]