2
在這裏學習用LINQ學習經驗豐富的SQL和ADO。用LINQ聲明SQL Server varbinary字段的正確方法
在繼續我的項目並使任何類型更改太昂貴之前,請讓我知道使用varbinary列的正確方法。他們應該如何用LINQ聲明?它應該映射到什麼類型,以免造成任何疼痛。
現在我已經測試了映射到byte []數組,並且它在一些初始測試中工作得很好。我打算存儲從流中收集的數據,並且由於流的內容可以通過ToArray()
方法以字節數組格式獲得,所以這種方法似乎是可行的。
private byte[] _testVarbinary;
[Column(Storage="_testVarbinary")]
public byte[] testVarbinary
{
get
{
return this._testVarbinary;
}
set
{
this._testVarbinary = value;
}
}
...
// Reading
Console.WriteLine("Field size: {0}", f.testVarbinary.Length);
// Updating
f.testVarbinary = new byte[]{128, 129, 130, 131};
db.SubmitChanges();
那麼,我應該映射到其他更多的LINQ-esque類型嗎?或堅持與基本byte[]
就好了。
好吧,如果我不打算更新單獨的字節值,那麼'Linq.Binary'會是一個更嚴格的類型使用?實際上,我嘗試用'byte []'來更新單個元素,即'f.testVarbinary [0] = 123; db.SubmitChanges();'但它不會導致數據庫值發生任何變化。我想它並沒有觸發一些內部的「改變」標誌,也許有一些手動觸發它的方法。 – Passiday 2013-03-28 07:15:40
@Passiday我已更新我的答案,以包含手動標記實體或其屬性爲已修改的相關詳細信息。 – 2013-03-28 14:35:16
非常好,謝謝! – Passiday 2013-03-28 14:50:21