我有一個SQL中的地理區域,我標記爲null。不能使用可空的DbGeography
然後在我的EF實體我添加了一個可爲空DbGeography?
屬性,但我得到一個消息,說是不允許的。
那麼,怎樣才能我在數據庫中插入沒有定義的DbGeography?
我一直在尋找類似DbGeography.Empty或DbGeography.Unknown。
但我無法找到任何...
謝謝你, 米格爾
我有一個SQL中的地理區域,我標記爲null。不能使用可空的DbGeography
然後在我的EF實體我添加了一個可爲空DbGeography?
屬性,但我得到一個消息,說是不允許的。
那麼,怎樣才能我在數據庫中插入沒有定義的DbGeography?
我一直在尋找類似DbGeography.Empty或DbGeography.Unknown。
但我無法找到任何...
謝謝你, 米格爾
這是因爲DbGeography是一流的,它是不允許有標記類作爲nullable
(在nullable
事僅用於結構)。你的財產
更改類型DbGeography
(不DbGeography?
)。由於DbGeography是類,所以財產具有null
值是可以的。
DbGeography是一個類,所以它已經可以爲空。只需在模型中給它一個空值。
實體不需要明確標記爲可空。無論如何你都可以將它設置爲null。
如果你想有一個非空能DbGeography
屬性,但想表達一個空的(但不能爲null)值,你可以這樣做......
[Required] public virtual DbGeography GpsCoordsOrWhatever { get; set; } = DbGeography.FromText("POINT EMPTY")
DbGeography
和其他類型的System.Data.Entity.Spatial
命名空間是類(引用類型,因此無效)。相反,如果您希望擁有類型不可爲空的屬性,則可以將[Required]
屬性應用於屬性,或使用modelBuilder.Entity<Entity>().Property(t => t.Property).IsRequired()
。這並不會阻止null
賦值給該屬性,但它將映射到後備存儲(大多數情況下爲數據庫)中的非空字段,並且將在實體框架驗證中檢查null
。
DbGeography是一個類的權利?它已經可以空了。不需要'?'。 –