首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用可为空的DbGeography

无法使用可为空的DbGeography
EN

Stack Overflow用户
提问于 2014-05-21 07:32:14
回答 5查看 1.3K关注 0票数 0

我在SQL中有一个地理字段,我将其标记为null。

然后在我的EF实体上,我添加了一个可以为空的DbGeography?属性,但是我得到了一条消息,说这是不允许的。

那么,如何在数据库中插入未定义的DbGeography呢?

我在找像DbGeography.Empty或DbGeography.Unknown这样的东西。

但我找不到任何..。

谢谢你,米格尔

EN

回答 5

Stack Overflow用户

发布于 2014-05-21 07:37:15

DbGeography是一个类,所以它已经可以为空了。只要在你的模型中给它一个空值。

票数 2
EN

Stack Overflow用户

发布于 2016-10-25 05:32:00

如果您想要一个不可为空的DbGeography属性,但又想表示一个空(但不为空)值,您可以这样做...

代码语言:javascript
复制
[Required] public virtual DbGeography GpsCoordsOrWhatever { get; set; } = DbGeography.FromText("POINT EMPTY")

System.Data.Entity.Spatial命名空间中的DbGeography和其他类型都是类(引用类型,因此可以为空)。

相反,如果您希望拥有类类型的不可为空的属性,则应将[Required]属性应用于该属性,或使用modelBuilder.Entity<Entity>().Property(t => t.Property).IsRequired()。这不会阻止将null赋值给该属性,但它将被映射到后备存储(大多数情况下为数据库)中的非空字段,并将在实体框架的验证中检查null

票数 2
EN

Stack Overflow用户

发布于 2014-05-21 07:37:09

这是因为DbGeography是类,不允许将类标记为nullable( nullable只适用于结构)。

将属性的类型更改为DbGeography(而不是DbGeography?)。因为DbGeography是类,所以属性有null值是可以的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23771631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档