2015-07-02 43 views
0

我在asp.net mvc 6应用程序中得到'EntityType没有键定义'错误。对模型definging的“钥匙”属性所有的研究点,但是我已经正确地在这里做到了这一点,但问题仍然存在:EntityType没有使用字符串作为键定义的键

public class InvoiceCategory 
{ 

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

上面显示了完整的实体,没有其他列,名字列是主要关键。

附加信息:我想实现一个选择列表如下:

ViewBag.Category = new SelectList(
await DbContext.InvoiceCategory.ToListAsync(), 
"Name","Name", (object)invoiceItem.Category); 

任何想法,为什么我收到上述错误在这种情况呢?

+0

无法解释这一点,但我也不能推荐这一点。有意义的主键是不明智的。你永远不会改变一个名字。 –

+0

@Gert这是一个简单的查找列表。它不是关系型的,主键甚至没有必要,但是我设置它来尝试解决问题,唯一的限制是该列表是唯一的。 – Reafidy

回答

0

也许你尝试使用int作为KEY而不是字符串。

+0

我不能使用整数,因为名称列是一个字符串。它是唯一的列,我不想为简单的查找列表添加int id列。 – Reafidy

+0

以及关键是因为这个原因我认为你需要使用int只是尝试,你会看到如果是这个问题:) – Nikolay

+0

如果我添加一个整数列到数据库,所以我有“ID,名称”,那么是的将工作,但这意味着我必须添加一个无意义的列到我不想做的数据库中。我只想要一个简单的字符串查找列表。我错过了什么吗? – Reafidy

相关问题