Entity Framework - 将数据库字段映射到 uint

Entity Framework - Mapping DB fields to uint

我正在使用 DB-first entity framework 应用程序。使用 SQL 服务器作为没有无符号列类型的数据库。从数据库生成模型时是否有可能导致 EF 将字段映射到 uint 而不是 int? (这些表基于外部结构,大部分字段都是 uint。就目前而言,我必须将所有字段转换为 int 才能使用 EF。)

我认为这与 How to use unsigned int / long types with Entity Framework? 不同,因为我谈论的是数据库优先环境中的映射,这与他们在那里所做的不同。另外,如果可能的话,我尽量避免投射。

EF 不支持无符号类型。

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

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

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

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