[英]Decorating a nullable field as a non-nullable property for code first Linq to SQL
我正在將Linq的SQL屬性添加到預先存在的類(更改屬性的數據類型將是一項重大更改),我確實認為指定ColumnAttribute
的Storage參數將指示Linq到SQL位以直接與支持字段進行交互,因此我希望可以像下面這樣工作:
Private _foo As Integer? = 0
<Column(CanBeNull:=True, DbType:="INT", Name:="FooBar", Storage:="_foo")> _
<DefaultValue(0)> _
Public Property Foo() As Integer
Get
Return If(_foo.HasValue, _foo.Value, 0)
End Get
Set(ByVal Value As Integer)
_foo = If(Value = 0, New Integer?(), Value)
End Set
End Property
經過一番旋轉之后,基本介紹一下:
MyThing target = (from u in context.MyThings select u).First();
我發現這失敗了:
System.InvalidOperationException:無法將null值分配給類型為System.Int32的成員,該類型是不可為null的值類型。
因此,是否可以標記現有代碼以在不進行重大更改的情況下使用Linq to SQL,還是我必須為LINQ to SQL版本添加重復屬性?
嘗試....
If(IsNothing(_foo), 0, _foo.Value)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.