EntityType没有键定义错误,但我确实有一个键。为什么这会失败?

时间:2014-11-01 22:43:18

标签: c# entity-framework

我正在尝试将对象写入数据库,并抛出以下异常:

  

在模型生成期间检测到一个或多个验证错误:

     

EntityType'PageResponse'没有密钥   定义。定义此EntityType的键。 PageResponse:EntityType:   EntitySet'PageResponse'基于没有的'PageResponse'类型   键定义。

但我已经定义了一个键。为什么它仍然失败?

这是我的代码:

public class PageContext : DbContext
{
    public PageContext()
        : base("DefaultConnection")
    {

    }

    public DbSet<PageResponse> PageResponse { get; set; }
}

[Table("PageResponse")]
public class PageResponse
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int PageResponseId;

    public Uri Uri { get; set; }
    public string Text { get; set; }

    public string Title { get; set; }

    public string OriginalUrl { get; set; }

    public Uri ResponseUri { get; set; }
}

using (var db = new PageContext())
{
    try
    {
        PageResponse pr = new PageResponse
        {
            Text = data.Text,
            Uri = data.Step.Uri,
            Title = data.Title,
            OriginalUrl = data.OriginalUrl,
            ResponseUri = data.ResponseUri,

        };

        db.PageResponse.Add(pr);
        db.SaveChanges();  

    }
    catch (Exception ex)
    {

    } 
}

1 个答案:

答案 0 :(得分:1)

您的密钥属性未正确定义,它没有getter或setter。改变这个:

public int PageResponseId;

对此:

public int PageResponseId { get; set; }