大师,
我想序列化Entityframe Work对象(底层对象来自Oracle表)。我正在使用LINQ查询。
代码段
using (Entities1 ctx = new Entities1())
{
ctx.Configuration.ProxyCreationEnabled = false;
var oraLINQ1 = from ime in ctx.INV_MOVE_EVENT
select new
{
ime.TO_POS_SLOT
};
var bformatter = new BinaryFormatter();
Stream stream = File.Open("INVMOVEEVENT.ifl", FileMode.Create);
bformatter.Serialize(stream, oraLINQ1);
stream.Close();
}
我得到了一个例外
"Type 'System.Data.Entity.Infrastructure.DbQuery`1[[<>f__AnonymousType0`1[[System.String,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], EntityFramework,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' in Assembly 'EntityFramework,
Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as
serializable."} System.Exception {System.Runtime.Serialization.SerializationException}
我尝试继承ISerializable的INV_MOVE_EVENT实体类。它没有用。任何指向正确方向的线索都非常受欢迎。
答案 0 :(得分:0)
我无法在我身边测试它,但您是否尝试将查询转换为列表?
using (Entities1 ctx = new Entities1())
{
ctx.Configuration.ProxyCreationEnabled = false;
var oraLINQ1 = from ime in ctx.INV_MOVE_EVENT
select new
{
ime.TO_POS_SLOT
};
var bformatter = new BinaryFormatter();
Stream stream = File.Open("INVMOVEEVENT.ifl", FileMode.Create);
bformatter.Serialize(stream, oraLINQ1.ToList());
stream.Close();
}
它应该可以正常工作。