如何使用EF Code First的遗留类?

时间:2012-01-07 12:10:34

标签: c# entity-framework ef-code-first

我有很多用C#编写的遗留类,我想与EF Code First一起使用。

需要对这些类做些什么才能使它们可用于EF Code First?

1 个答案:

答案 0 :(得分:1)

如果您的类是POCO实体类,那么首先使用实体​​框架代码非常容易。需要在具有这些类型关系的实体中定义FK关系。例如:

public virtual ICollection<CmsCategoryType> CategoryTypes { get; set; } 

其次,您需要创建一个DBcontext类,它实际上会为您提供所有内容。例如:

public class CampaignContext :  DbContext
{
    public DbSet<CmsContent> Contents { get; set; }
    public DbSet<CmsCategoryType> CategoryTypes { get; set; }
}

预先定义连接字符串也是个好主意。例如:

<add name="CampaignContext" connectionString="Data Source=localhost\SQLEXPRESS;
                            Initial Catalog=Campaigns;
                            Integrated Security=True" 
                            providerName="System.Data.SqlClient"/>

现在,当您第一次运行应用程序时,实体框架代码首先将转到连接字符串中指定的sql server,使用预定义的名称创建数据库,获取实体类并创建具有主要和外部的表密钥关系,通常通过dbcontext为您提供所有内容。

需要注意的是,连接字符串名称和dbcontext应该具有相同的名称,按照惯例,dbcontext会查找匹配的名称。你也可能错过了一些你认为应该有的关系。再一次,这是需要在相关实体之间来回设置的虚拟ICollections。

希望这对你的项目有所帮助,祝你好运。