【问题标题】:Entity Framework - Mapping DB fields to uint实体框架 - 将 DB 字段映射到 uint
【发布时间】:2015-04-13 07:29:05
【问题描述】:

我正在使用一个 DB 优先的实体框架应用程序。使用 SQL Server 作为数据库,它没有无符号列类型。从数据库生成模型以导致 EF 将字段映射到 uint 而不是 int 时是否有可能? (这些表是基于外部结构的,并且大部分字段都是 uint。就目前而言,我必须将所有字段强制转换为 int 才能使用 EF。)

我相信这与How to use unsigned int / long types with Entity Framework? 不同,因为我说的是在 DB-first 环境中进行映射,这与他们在那里所做的不同。另外,如果可能的话,我会尽量避免强制转换。

【问题讨论】:

标签: c# .net entity-framework entity-framework-5


【解决方案1】:

EF 不支持无符号类型。

来源:https://entityframework.codeplex.com/workitem/1489

据我所知,除了显式转换之外,没有其他选择。 C# 严格执行无符号强制转换,当涉及到负值或大值时,类型之间的转换可能会丢失信息。我唯一的建议是实现一个帮助程序或扩展方法来执行内置错误检查的强制转换。

【讨论】:

  • 谢谢。我对此感到害怕,但希望能找到某种方法来做我想做的事……
【解决方案2】:

How to use unsigned int / long types with Entity Framework?

看看这个。 基本上它在数据库中使用有符号数据类型,但在 C# 中使用未经检查的转换将有符号转换为无符号。

【讨论】:

  • 这应该是评论,而不是答案。如果这是一个重复的问题,那么vote to close 和/或在您earn 足够reputation 后发表评论。如果问题不是重复的,则针对此特定问题定制答案。
猜你喜欢
  • 2017-10-16
  • 2013-09-28
  • 2015-08-17
  • 1970-01-01
  • 2010-10-09
  • 2014-12-18
  • 1970-01-01
  • 2010-10-14
  • 2014-08-21
相关资源
最近更新 更多