我想在MVC3上创建一个模型,但是我没有为表创建模型,而是想在我的数据库中为一个视图创建一个模型。我知道对于表的模型,我需要在创建模型时指定主键,如果不是我得到一些错误消息。由于视图没有主键/外键,我该如何为View创建模型?
答案 0 :(得分:0)
在任何与EF一起使用的MVC应用程序中,您可能有不同的模型在db或概念模型中为不创建任何表的视图创建表。表创建取决于您将在类中定义的模型类的属性从DbContext继承的。请注意,此类及其关系类中存在的任何属性都将在db中创建表。因此,要创建仅在视图中使用的模型,您可以定义与其他表创建者模型没有任何关系的模型,以及在继承的DbContext类中没有定义的模型。然后您可以将它们用作模型或类来在视图中显示数据。控制器及其相关视图应使用相同的模型,不会发生任何错误。
public class datacontext : DbContext
{
public DbSet<Person> people { get; set;}
public DbSet<Address> address { get; set;}
}
public class Person
{
[Key]
public int ID { get; set;}
public String Name { get; set;}
}
public class Address
{
[Key]
public int ID { get; set;}
public Country country { get; set;}
public String Details { get; set;}
}
public class Country
{
[Key]
public int ID { get; set;}
public String Name { get; set;}
}
public class Work_Field//without any key definition
{
public String Title { get; set;}
public String Description { get; set;}
}
这里我们有这些表:Person,Address,Country(虽然它没有在datacontext类中定义) 在这个例子中,您可以使用Work_Field作为视图模型,也许使用某些DataAnnotations,如[Required],...强制用户不要将参数留空,等等。