通过 EF4 使用数据库生成的 GUID 和日期时间

发布于 2024-10-19 20:12:27 字数 431 浏览 2 评论 0原文

我有一个简单的表,其中包含 ID(uniqueidentifier)、日期时间 和一个值。

我想在数据库上使用 getdate() 来获取记录插入时间,并使用 newid() 来获取 id。如何配置实体框架来执行此操作?当我尝试在数据库上分配 id 时,我得到:

Violation of PRIMARY KEY constraint 'PK_Random'. Cannot insert duplicate key in object 'dbo.Random'. The duplicate key value is (00000000-0000-0000-0000-000000000000).

I have a simple table with an ID (a uniqueidentifier), a datetime, and a value.

I'd like to use getdate() on the database for the record insertion time and newid() for the id. How do I configure entity framework to do this? When I try to assign the id on the DB I get:

Violation of PRIMARY KEY constraint 'PK_Random'. Cannot insert duplicate key in object 'dbo.Random'. The duplicate key value is (00000000-0000-0000-0000-000000000000).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦回旧景 2024-10-26 20:12:27

如果您首先使用代码。请将以下内容添加到您的指南中。

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid guId { get; set; }

这将启用 SQL Server 端 GUID 生成。希望有帮助。

if you are using code first. Please add the following to your guid.

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid guId { get; set; }

This will enable sql server side guid generation. Hope it helps.

单身狗的梦 2024-10-26 20:12:27

只是补充一下,因为@lunateck 的回答对我有帮助。另一种方法(如果您使用的是 Database First)是:

  1. 打开您的 edmx 文件。
  2. 右键单击->模型浏览器
  3. 右键单击 Guid 列 ->属性->将 StoreGeneratePattern 更改为 Identity

Just to add to this since @lunateck answer helped me. The other way (if you are using Database First) is to:

  1. Open your edmx file.
  2. Right click -> Model Browser
  3. Right click the Guid column -> Properties -> change the StoreGeneratedPattern to Identity.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文