asp.net无法检索元数据(asp.net unable to retrieve metadata

2019-10-18 10:16发布

您好我有一个MVC问题甚至阅读提示后作出的控制器。 加上对的DbContext构造,删除非工作过,改变的providerName =“System.Data.SqlClient的”等等。

我的模型类是这样的:

public class RecruiterModel
{
    public string CompanyName { get; set; }
    public string Website { get; set; }
    public string CompanySize { get; set; }
    public string LinkedInCompanyURL { get; set; }
    public string LinkedInID { get; set; }
    public string Specialities { get; set; }
    public string Category { get; set; }
    public string Location { get; set; }
    public int ContactPhone { get; set; }
    public string ContactEmail { get; set; }
}

public class RecruiterDBContext : DbContext
{

    public DbSet<RecruiterModel> Recruiters { get; set; }
}

和我的web.config的ConnectionStrings看起来是这样的:

<add name="ApplicationServices"
     connectionString="data source=.\SQLEXPRESS;Integrated  Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />
<add name="RecruiterDBContext"
     connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Recruiters.mdf;Integrated Security=True"
     providerName="System.Data.SqlClient"
/>

有小费吗?

Answer 1:

以下属性添加到您Recruiter类:

public string Id { get; set; }

或应用Key属性您现有的属性之一。 例如:

[Key]
public string CompanyName { get; set; }

MSDN上,你有代码首先约定话题:

主键公约

代码首先推断出一个属性是一个主键,如果在一个类中的属性被命名为“ID”(不区分大小写),或类名,接着“ID”。 如果主键属性的类型是数字或GUID它将被配置为标识列。

 public class Department { // Primary key public int DepartmentID { get; set; } . . . } 

在话题的另一个参考本中所作的Code First DataAnnotations文章:

实体框架依赖于拥有一个键值(又名的EntityKey),它使用了跟踪实体的每一个实体。 一个代码首先依赖于约定的是如何意味着其属性是每个代码第一类的关键。 该公约是寻找名为“ID”,结合了类名和“ID”,如“BlogId”属性或一个 。 除了EF的使用的EntityKey的,酒店将映射到数据库中的主键列。



Answer 2:

我已经找到了解决方案来创建控制器类在模型类我加入

使用System.ComponentModel.DataAnnotations;

公共类RecruiterModel {[关键]公共字符串ID {获得; 组;

然后在web.config中我注释掉整个

的ConnectionStrings标签

然后,我创建的控制器,但和它的工作。

由于GOS出来亚历克斯Filipovici和Young杨- MSFT上: http://forums.asp.net/t/1888573.aspx/1?Unable+to+retrieve+metadata+for+when+trying+to+create+a +控制器

虽然它的工作原理,但解决方案资源管理器选项卡上的App_Data下我没有看到数据库文件...嗯另一个问题。



文章来源: asp.net unable to retrieve metadata