C# 如何首先将遗留类与EF代码一起使用?
我有大量用C#编写的遗留类,我希望首先与EF代码一起使用C# 如何首先将遗留类与EF代码一起使用?,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我有大量用C#编写的遗留类,我希望首先与EF代码一起使用 首先需要对这些类做什么才能使它们对EF代码可用 如果您的类是POCO实体类,那么首先使用实体框架代码非常容易。FK关系需要在具有这些关系类型的实体中定义。例如: public virtual ICollection<CmsCategoryType> CategoryTypes { get; set; } public class CampaignContext : DbContext { public DbSet
首先需要对这些类做什么才能使它们对EF代码可用 如果您的类是POCO实体类,那么首先使用实体框架代码非常容易。FK关系需要在具有这些关系类型的实体中定义。例如:
public virtual ICollection<CmsCategoryType> CategoryTypes { get; set; }
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"/>
公共虚拟ICollection类别类型{get;set;}
其次,您需要创建一个DBcontext类,它将为您连接所有内容。例如:
public virtual ICollection<CmsCategoryType> CategoryTypes { get; set; }
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"/>
公共类活动上下文:DbContext
{
公共数据库集内容{get;set;}
公共数据库集类别类型{get;set;}
}
预定义连接字符串也是一个好主意。例如:
public virtual ICollection<CmsCategoryType> CategoryTypes { get; set; }
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"/>
现在,当您第一次运行应用程序时,entity Framework code first将转到连接字符串中指定的sql server使用预定义的名称创建数据库,获取实体类并创建具有主键和外键关系的表,通常通过dbcontext为您连接所有内容
需要注意的是,连接字符串名称和dbcontext应该具有相同的名称,按照约定,dbcontext会查找匹配的名称。此外,你可能会错过一些你认为你应该拥有的关系。同样,这是需要在相关实体之间来回设置的虚拟ICollection
希望这对您的项目有所帮助,祝您好运。您所说的遗留类是什么意思?还有用于这些类的数据库表吗?它们不是实体类。它们只是普通类,用于遗留产品中。如果您只是在谈论类库或实用性类,那么没有什么特别的事情要做,只需像对任何其他类型的应用程序一样引用它们。