我有很多用C#编写的遗留类,我想与EF Code First一起使用。
需要对这些类做些什么才能使它们可用于EF Code First?
答案 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。
希望这对你的项目有所帮助,祝你好运。