gpt4 book ai didi

c# - 是否可以序列化 LINQ 对象?

转载 作者:可可西里 更新时间:2023-11-01 07:51:42 26 4
gpt4 key购买 nike

我想序列化一些 LINQ 生成的对象并将它们作为二进制字段存储在表中(不要介意为什么)。我希望能够编写一些看起来像这样的代码:

SerialTestDataContext db = new SerialTestDataContext();

relation_table row = db.relation_tables.First();

MemoryStream memStream = new MemoryStream();
BinaryFormatter bin = new BinaryFormatter();
bin.Serialize(memStream, row);
Console.WriteLine("Serilized successfully");

TestTable tt = new testTable();
tt.data = new System.Data.Linq.Binary(memStream.ToArray());
db.testTables.InsertOnSubmit(tt);
db.SubmitChanges();
Console.WriteLine("Inserted successfully");

即使我已将生成的类标记为 [Serializable],但目前失败了,因为 LINQ 继承的类之一不是。甚至可以这样做吗?

最佳答案

使用 linq-to-sql(来自标签),然后是:您可以将 dmbl 标记为可序列化,它使用 [DataContract]/[DataMember] 方法。您可以通过在设计器中将“序列化模式”设置为“单向”来执行此操作,或者您可以在 dbml 本身中执行此操作:

<Database ... Serialization="Unidirectional">...

然后您可以使用 DataContractSerializer 或 NetDataContractSerializer 来编写它(分别作为 xml 或二进制文件)。如果您需要可移植的东西(即不是特定于 MS/.NET 的),那么 protobuf-net将使用“ Protocol Buffer ”规范序列化数据契约(Contract)。

关于c# - 是否可以序列化 LINQ 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/332390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com