无法使用Entity框架创建控制器 - 无法检索“'的元数据

时间:2016-02-21 21:32:47

标签: c# asp.net asp.net-mvc

我是ASP.net的菜鸟,并且不知道为什么控制器没有被创建,在教程中我将它从一个单词复制到另一个单词它很好地允许我创建一个数据库。

遵循本教程的结构但以我自己的方式(只更改几个名称) - http://www.asp.net/mvc/overview/getting-started/introduction/adding-a-model

Charity.cs:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace CharityWebsite.Models
{
    public class Charity

    {
        public String DisplayName { get; set; }
        public DateTime Date { get; set; }
        public Double Amount { get; set; }
        public Double TaxBonus { get; set; }
        public String Comment { get; set; }
    }

    public class CharityDBContext : DbContext
    {
        public DbSet<Charity> Donations { get; set; }
    }
}

Web.Config中:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-CharityWebsite-20160221090932.mdf;Initial Catalog=aspnet-CharityWebsite-20160221090932;Integrated Security=True" providerName="System.Data.SqlClient" />
    <add name="CharityDBContext"
        connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Donations.mdf;Integrated Security=True"
        providerName="System.Data.SqlClient"
    />
</connectionStrings>

错误:

  

'无法检索CharityWebsite.Models.Charity'的元数据   CharityWebsite.Models.Charity没有定义键。定义密钥   这个entityType。捐赠:EntityType:EntitySet'捐赠'基于   类型'慈善'没有定义键。

1 个答案:

答案 0 :(得分:1)

要解决此问题,请尝试在模型中添加主键。

[Key]
[Required]        
public long ID{ get; set; }

这应该可以解决问题。