При таком запросе
public static void SaveUpdateUserSettings(int userId, string key, string data, byte[] binaryData)
{
using (var ctx = CBloomNewsDataContext.Context)
{
UserSetting us = ctx.UserSettings.FirstOrDefault(_ => _.UserId == userId && _.Key == key);
if (us == null)
{
ctx.Insert(new UserSetting
{
UserId = userId,
Key = key,
Data = data,
BinaryData = binaryData,
});
}
else
{
us.Data = data;
us.BinaryData = binaryData; // <-- здесь
ctx.Update(us);
}
}
}
...
[TableName(Name="UserSettings")]
public partial class UserSetting
{
[ PrimaryKey(1), Required ] public int UserId { get; set; } // int(10)
[ PrimaryKey(2), MaxLength(50), Required] public string Key { get; set; } // nvarchar(50)
[Nullable, MaxLength(1073741823) ] public string Data { get; set; } // ntext(1073741823)
[Nullable ] public byte[] BinaryData { get; set; } // varbinary(-1)
}
если binaryData = null, то получаем ошибку
Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.
Callstack
> BLToolkit.4.dll!BLToolkit.Data.DbManager.ExecuteOperation<int>(BLToolkit.Data.OperationType operationType, System.Func<int> operation) Line 4396 + 0xb bytes C#
BLToolkit.4.dll!BLToolkit.Data.DbManager.ExecuteNonQueryInternal() Line 615 + 0x51 bytes C#
BLToolkit.4.dll!BLToolkit.Data.DbManager.ExecuteNonQuery() Line 2793 + 0x8 bytes C#
BLToolkit.4.dll!BLToolkit.Data.DbManager.BLToolkit.Data.Linq.IDataContext.ExecuteNonQuery(object query) Line 184 + 0x8 bytes C#
BLToolkit.4.dll!BLToolkit.Data.Linq.Query<int>.NonQueryQuery(BLToolkit.Data.Linq.IDataContextInfo dataContextInfo, System.Linq.Expressions.Expression expr, object[] parameters) Line 213 + 0xc bytes C#
BLToolkit.4.dll!BLToolkit.Data.Linq.Query<int>.SetNonQueryQuery.AnonymousMethod__e(BLToolkit.Data.Linq.QueryContext ctx, BLToolkit.Data.Linq.IDataContextInfo db, System.Linq.Expressions.Expression expr, object[] ps) Line 201 + 0x12 bytes C#
BLToolkit.4.dll!BLToolkit.Data.Linq.Query<CBloomNewsDataModel.UserSetting>.Update(BLToolkit.Data.Linq.IDataContextInfo dataContextInfo, CBloomNewsDataModel.UserSetting obj) Line 820 + 0x53 bytes C#
BLToolkit.4.dll!BLToolkit.Data.Linq.Extensions.Update<CBloomNewsDataModel.UserSetting>(BLToolkit.Data.Linq.IDataContext dataContext, CBloomNewsDataModel.UserSetting obj) Line 288 + 0x3c bytes C#
CBloomNews.Database.dll!CBloomNews.Database.BussinesLogic.BL.Users.SaveUpdateUserSettings(int userId, string key, string data, byte[] binaryData) Line 440 + 0x11 bytes C#
BLToolkit — последнея из GIT
... << RSDN@Home 1.2.0 alpha 5 (M4) rev. 1510>>