当前项目:
我遇到的一个问题是我在整个项目的其余部分正确使用GUID,数据库字段类型是UniqueIdentifier。遗憾的是,Identity并没有遵循相同的规则,并且由于某些不可理喻的原因,他们将表字段创建为字符串--nVarChar(128)。
我发现了一些点击,显示如何正确修改Identity以使用UniqueIdentifier并将Guids强制转换为正确的格式,但是所有这些资源目前都已过时 - 大部分用于pre-v2和最新版本一个用于2.0.0-alpha,它提供的代码与当前版本的Identity不匹配或无效。
我已经尽最大努力向谷歌发布了什么,但要么它不存在,要么我的谷歌今天很弱。我正在寻找关于如何将DB字段更改为UniqueIdentifier(适用于Guid)的任何指针,同时仍然可以正常工作/转换。
编辑:似乎某个人或系统已将此文章作为可能的副本链接到另一篇文章。问题是,我已经将其他文章链接为对身份的v1.x使用,因此不能直接应用。即使我链接到的2.0.0-alpha代码也不起作用。即使链接文章底部的附加材料在2.2.1下也不起作用。
答案 0 :(得分:-3)
也许this会有所帮助:
实体框架 - 使用Guid作为主键
<强>更新强> 因此,如果您将使用这样的GUID:
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
EF会在您的数据库表中生成 uniqueidentifier ,但将列值设置为(newsequentialid())并使非常重要StoreGeneratedPattern 到Identity。 因此,这将自动生成下一个唯一ID
using (ApplicationDbContext context = new ApplicationDbContext())
{
var item = new Item
{
Name = "Random",
Description= "Person";
};
context.Items.Add(item);
context.SaveChanges();
Console.WriteLine(item.Id);
}
首页,这将有所帮助。