Age*_*ire 7 c# serialization xml-serialization linq-to-sql
有没有办法在表格中存储数据:
http://pasteboard.s3.amazonaws.com/images/LDTcQpG.png
内部SettingsModel列,其定义Linq-to-Sql如下:
http://pasteboard.s3.amazonaws.com/images/LDXSPiM.png
并且DataContext选项转向:
http://pasteboard.s3.amazonaws.com/images/LE1ddhn.png
使用类SettingsModel定义如下:
namespace ElQueue.DataClasses
{
[DataContract]
public sealed class SettingsModel
{
[DataMember(IsRequired = true)]
public int[] VideoMediaData { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
这条路?...
using (SomeDataContext dataContext = new SomeDataContext())
{
SettingsModel m = new SettingsModel();
m.VideoMediaData = new int[] { 1, 2, 3 };
dataContext.MainTableSettings.InsertOnSubmit(new MainTableSetting() { SettingsModel = m });
dataContext.SubmitChanges();
}
using (SomeDataContext dataContext = new SomeDataContext())
{
var r = dataContext.MainTableSettings.Single();
}
Run Code Online (Sandbox Code Playgroud)
你看,上面的代码没有正常工作,它抛出异常,说它无法将字符串转换为MainTableSetting意味着它无法保存所有序列化数据或者加号无法反序列化它.
我需要一些建议如何Linq-to-Sql在访问数据库时将其指向实际进行序列化(反之亦然).
尽管您可以将 XElement 和 XDocument 映射到 SQL Server(如类型映射运行时行为矩阵中所示),但 System.Data.Linq.DataContext.CreateDatabase 方法没有针对这些类型的默认 SQL Server 类型映射。
如果类实现Parse()和ToString(),则可以将该对象映射到任何 SQL 文本类型(CHAR、NCHAR、VARCHAR、NVARCHAR、TEXT、NTEXT、XML)。通过将ToString()返回的值发送到映射的数据库列,将对象存储在数据库中。通过对数据库返回的字符串调用Parse()来重建该对象。
http://msdn.microsoft.com/en-us/library/bb386947.aspx#TextMapping
public sealed class SettingsModel
{
// ...
public static SettingsModel Parse(string source)
{
SettingsModel res;
// Deserialise the object
return res;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
899 次 |
| 最近记录: |