【问题标题】:Datatype declaration in Entity framework for MVCMVC 实体框架中的数据类型声明
【发布时间】:2018-03-29 10:11:06
【问题描述】:

谁能告诉我这是否正确? 在 C# 中使用实体框架时,数据库中的每个表都必须有 1 列数据类型为 INT,并且必须是访问数据的主键。

我在表中有一个数据类型为 float 的列。上述条件是强制性的吗?我是否必须强制更改列的数据类型才能使用框架访问它?或者还有其他方法可以使用实体框架工作。

如果是,请您提供一个链接以供开发参考。

谢谢

【问题讨论】:

  • 在实体框架中,您的主键中不必包含 INT 数据类型。它可以是您喜欢的任何数据类型,只要它设置为非空即可。
  • @TharushaShehan - “任何数据类型”?我不推荐 FLOAT 作为键。
  • 亲爱的@HenkHolterman 是的,使用浮点数根本不是一个好习惯,但是仅使用 INT 和 INT 并没有限制,这就是我在此强调的内容。抱歉,如果我的上述评论触犯了这里的任何社区标准。

标签: asp.net-mvc entity-framework


【解决方案1】:

阅读This site,全面了解 .Net 中的实体框架。

Entity Framework 的前两个版本是 .Net 框架的一个特性。但现在微软将它作为一个完整的其他框架提供。

至于上述问题的答案,只要该字段不为空,您可以使用任何数据类型作为主键。它不必一直是int。如果您愿意,可以通过停止自动递增将其设为字符串。

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public string YourId { get; set; }

并使用内部代码逻辑制作下一个主键。在实体框架中有DB-firstcode-first 方法。这可能因您的方法而异。

【讨论】:

  • 对于支持者:所有这个答案都是 “只要该字段不为空,您就可以使用任何数据类型作为主键。它不必是 INT 所有时间”,没有来源或解释。剩下的就是噪音。
  • 亲爱的@CodeCaster 请注意我编辑的答案。并感谢您对此的反馈。这真的很有帮助,让我得到了上述答案。
  • 是的,现在好多了,但前两段仍然无关紧要。
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
相关资源
最近更新 更多