我有代码
const string schamaName = "schema";
public class Data: DbContext
{
public DbSet<Offer> Offers {get;set;}
public DbSet<Place> Places{get;set;}
}
public class Offer
{
public int Id {get;set;}
public string Name {get;set;}
IEnumerable<Place> Places {get;set;}
}
public class Place
{
public int Id {get;set;}
public string Name {get;set;}
}
这段代码将为我生成三个表,一个用于Offer,一个用于Place,一个用于在两个前面的表之间进行映射。
现在我得到了想要的结构,但是在dbo模式中。
我想放表在“提供”模式中提供和映射,“dict”模式中的第三个表
我怎么能这样做?
我用的是EF6
我更喜欢在OnCreatingModel方法中编写一些代码,而不是使用attibutes
答案 0 :(得分:4)
我相信您应该将优惠作为虚拟收藏品包含&lt;&gt;而不是DbSet&lt;&gt;:
public class Data
{
public int Id {get;set;}
public string Name {get;set;}
public virtual Collection<Offer> Offers {get; set;}
}
此外,如果您的架构真的是“架构”而不是“dbo”,那么您需要按如下方式装饰您的类:
[Table("Data", Schema="schema"]
public class Data
{
...
或者如果您更喜欢OnModelCreating():
modelBuilder.Entity<Data>().ToTable("Data", "schema");