簡體   English   中英

將可為空的字段裝飾為代碼優先Linq to SQL的不可為空屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM