嗨是否有可能使用实体....将foriegnkey分配给表。
请参阅此问题以澄清.. how do add a single entry for two tables using linq to entities
让我解释清楚.....
i have a product table product_id
product_name
product_description
category_id
category table
category_id
category_name
遗憾的是,在创建表时,将category_id指定为外键是不可能的,实体表自己将category_id作为列而不是外键
所以..我想将此指定为外键,以便...可以通过编程方式指定为外键 任何人都可以使用流畅的api指定foreignkey的示例代码
答案 0 :(得分:1)
如果您正在使用EntityFramework 4.1,则可以使用Fluent API,它允许您指定键名和其他关联属性。
答案 1 :(得分:0)
以下是我在EF 4.1 CodeFirst中如何做到这一点的示例。我想,你可以使用非常相似的方法。
public class P
{
public string Id { get; set; }
public string Name { get; set; }
public string Desc { get; set; }
public string CategoryId { get; set; }
}
public class C
{
public string Id { get; set; }
public string Name { get; set; }
}
public class ProductsContext : DbContext
{
public DbSet<P> Products { get; set; }
public DbSet<C> Categories { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<P>().HasRequired(p => p.CategoryId).WithRequiredDependent();
}
}
在OnModelCreating中,您可以告诉上下文,即使在DB中没有这样的关系,也希望如何设置关系。