Tag: ef 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 framework5:代码优先的周期性关系问题

我理解为什么EF不允许PK / FK关系中的“循环引用”。 我正在寻找有关如何更改模型以使以下方案有效的建议。 脚本 三个实体: Employee , Agency , WorkRecord 。 他们的目的是记录员工上class时间。 然后, Employee包含他/她所雇用的Agency的参考,并且他/她的工作WorkRecord包含对工作所完成的Agency的参考。 public class Employee { [Key] public int Id { get; set; } public string Name { get; set; } public int AgencyId { get; set; } public virtual Agency Agency { get; set; } public virtual IEnumerable WorkRecords { get; […]

EF6 codefirst中的唯一多列

我有一个类似于以下内容的电子邮件: public class Email { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } public string Subject { get; set; } public string Body { get; set; } public string From { get; set; } public DateTime SentOn { get; set; } public List To { get; set; } } 为了确保唯一性,我在Subject , From和SentOn上创建了一个复合键 这造成了当Subject超过128个字符时validation失败的问题。 所以我只是在它上面放了一个[MaxLength]属性。 但现在它不能成为关键专栏 […]

entity framework代码首先不保存后延迟加载

我的数据库中有一个查找表和一个数据表。 我将以性别和人为例。 所以,让我们说性别表看起来像这样: Id Code 1 Male 2 Female 而person表看起来像这样: Id Name GenderId 1 Bob 1 2 Jane 2 我首先在EF代码中建模了两个表,如下所示: public class Gender { public int Id {get;set;} public string Code {get;set;} } public class Person { public int Id {get;set;} public string Name {get;set;} public int GenderId {get;set;} public virtual Gender {get;set;} } 如果我读了一个已经在数据库中的人,那么我可以访问person.Gender.Code没有问题。 […]

在EF Core中添加一对一关系时迁移数据?

在我的一个表中添加新的一对一关系后,我无法弄清楚如何为我的数据库中的现有行添加默认数据。 升级前我的数据库基本上看起来像这样: — Team — Name: TEXT — History — Id: INT …其中历史是从其他不相关的表指向它的外键。 在我的升级中,我基本上希望团队有一个历史记录,所以我的新数据库看起来像: — Team — Name: TEXT HistoryId: INT — History — Id: INT 我现在的问题是,我的数据库中有现有的团队,他们需要指向唯一的历史记录行,因此我需要为每个现有的团队创建一个新的历史记录行。 我尝试在迁移中手动添加Up方法中的条目,但由于我的模型与现有模式不匹配,因此失败。 protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( name: “HistoryId”, table: “Team”, nullable: false, defaultValue: 0); using (var db = new XMDBContext()) { foreach (var team in db.Team) […]

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中的唯一索引约定

如何为不同类型的索引创建自定义索引和键约定。 我需要为以下键或索引类型命名不同的命名: PK_TableName主键 外键的FK_SourceTable_Column_TargetTable IX_TableName_Column1_Column2非唯一索引 UX_TableName_Column1_Column2唯一索引 默认情况下,Entity Framework使用以下命名: 主键的PK_ schemaname .TableName 外键的FK_ schemaname .SourceTable_ schemaname .TargetTable_Column1 IX_Column1表示非唯一索引 ColumnName为唯一索引 我发现我可以实现IStoreModelConvention ,但我还没有找到特定类型作为类型参数。 此外,可以有自定义代码优先约定 ,但我的研究结束时没有结果。 当我使用Entity Framework Code First时,如何才能获得提及的命名规则? 它可以是任何东西:包装,样品或以下研究的方向。

我可以将2个不同的EntityFramework上下文共享一个SqlServer Compact数据库吗?

我有一个包含2个表的SqlServer Compact Edition数据库。 对于这些表中的每一个,我都有一个派生自DbContext的上下文类,应用程序使用它来访问该表。 为了保持应用程序的不同组件分离,我不能有一个上下文类,它将具有两个表的DbSet属性。 相反,我需要有两个不同的上下文类,每个上下文必须完全不知道另一个及其数据。 我正在使用代码优先方法,我的代码定义了实体和模型,我让Entity Framework为我创建数据库。 我的问题是:我怎样才能让Entity Framework在上下文初始化时自动为我创建数据库和表,但仍然有2个上下文共享相同的数据库和连接? 现在我得到的是,第一个上下文成功创建了数据库及其中的表,但是当我尝试创建第二个上下文时,我得到了,不出所料的是以下错误: The model backing the ‘SomeObjectContext’ context has changed since the database was created. Either manually delete/update the database, or call Database.SetInitializer with an IDatabaseInitializer instance. For example, the DropCreateDatabaseIfModelChanges strategy will automatically delete and recreate the database, and optionally seed it with new data. […]

entity framework4.1两个具有相同属性名称的表

我在entity framework和SQL数据库方面遇到了一些问题。 所以我的问题是这样的:在我的数据库中有两个具有相同属性的表,它们在类型和长度上是相同的,但它们没有任何关联。 没有任何外键。 一旦我开始与数据库entity framework交互,就会吐出一个着名的错误: 错误0019:类型中的每个属性名称必须是唯一的。 属性名称已定义。 我顺便使用代码第一种方法。 这是表的类表示之一: [Table(“bo”)] public class TbPBO { [Required(AllowEmptyStrings = false, ErrorMessage = “O campo de nome nao pode ser nulo”)] [MaxLength(55, ErrorMessage = “O campo de nome nao pode ter mais que 55 caracteres”)] [Column(“nome”, TypeName = “char”, Order = 4)] public string TbBonome { get; set; […]

EF4 Code First CTP5:种子方法不再有效

我有EF Code First CTP4工作正常,我今天安装了CTP5。 现在,我重新填充数据库时出现exception。 这是我的模型: public class Member { public Member() { DateCreated = DateTime.Now; DateUpdated = DateTime.Now; DateLastLogin = DateTime.Now; } [Key, DatabaseGenerated(DatabaseGenerationOption.Identity)] \\I have tried removing these annotations and the result is the same public int MemberId { get; set; } [Required,RegularExpression(“.+\\@.+\\..+”, ErrorMessage = “Please enter a valid email address”)] public string […]