3

我想在 MVC3 上创建一个模型,但不是为表创建模型,而是为我的数据库中的视图创建一个模型。我知道对于表的模型,我需要在创建模型时指定主键,否则我会收到一些错误消息。由于视图没有主键/外键,我该如何为视图创建模型?

4

1 回答 1

0

在任何与 EF 一起使用的 MVC 应用程序中,您可能有不同的模型来在 db 中创建表,或者为不创建任何表的视图创建概念模型。表的创建取决于您将在继承自的类中定义的模型类的哪些属性数据库上下文。请注意,此类及其关系类中存在的任何属性都将在 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],... 来强制用户不要离开参数为空,等等。

于 2012-11-24T09:10:37.200 回答