实体框架(代码优先)

编程入门 行业动态 更新时间:2024-10-24 18:22:08
本文介绍了实体框架(代码优先) - 动态构建模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有我的课域的集会 - Domains.dll。我动态添加到组装我的DbContext Dbset加载类

I have an assembly with classes my domains - "Domains.dll". I dynamically add to my DbContext Dbset load classes of assembly.

public class MyContext : DbContext { public MyContext() : base("DBConnection"){} protected override void OnModelCreating(DbModelBuilder modelBuilder) { Assembly assembly = Assembly.LoadFrom("Domains.dll"); var entityMethod = typeof(DbModelBuilder).GetMethod("Entity"); var list = assembly.GetTypes().OrderBy(i => i.GetType().Name); foreach (Type item in list) { entityMethod.MakeGenericMethod(item) .Invoke(modelBuilder, new object[] { }); } } }

接下来,我创建数据库

Next, I create DataBase

context.Database.Create();

这工作,但与我的域名的一个问题。我对父实体

This works but with a problem for my domain. I have a class for the parent entity

public abstract class Entity { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } } public class Person : Entity { public string FirstName {get ;set;} public string LastName {get ;set;} }

如果现在我运行一个数据库 - 表'人'是不是create.It创建一个表'实体'有场标识,名字,姓氏。

If now I run a database - table 'Person' is not create.It creates a table 'Entities' with fields Id, FirstName, LastName.

如果我改变人

public class Person { public int Id {get; set;} public string FirstName {get ;set;} public string LastName {get ;set;} }

那么数据库的两个表中创建 - '人'和'实体'。如何使用继承?我该怎么做是正确的?

then created in the database two tables - 'Person' and 'Entities'. How do I use inheritance? How do I do it right?

推荐答案

尝试使用 [表(人)] 属性,我鼓励你看看那的与EF代码优先继承,这是一个不错的职位。

Try using [Table("Person")] Attribute, and I encourage you to take a look at that Inheritance with EF Code First, It is a good post.

所以要恢复试试这个:

public abstract class Entity { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } } [Table("Person")] public class Person : Entity { public string FirstName {get ;set;} public string LastName {get ;set;} }

更多推荐

实体框架(代码优先)

本文发布于:2023-07-27 12:03:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1222338.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实体   框架   代码

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!