嗨,我是 Linux 和 mono 的新手。我使用的是 Mono 3.6 和 Debian 7.6
我不断收到未设置为对象实例的对象引用。我使用与 VS 2013 在 Windows 上编译的代码相同的代码,并且运行良好。
string connstring = string.Format
("Data Source={0},{1};Initial Catalog={2};User ID={3};Password={4};Application Name={5};Connect Timeout=120",
IP, Port, database, Username, Password, InstanceID);
settings = new ConnectionStringSettings("sqlServer",
connstring, "System.Data.SqlClient");
using (data = new SwitchDataDataContext(settings.ConnectionString)){
BlockList.Clear();
foreach (var item in data.BlockLists)
{// so this works
if (BlockList.ContainsKey(item.TN) == false)
BlockList.TryAdd(item.TN, item.TN);
}
// this is where it crashes
var custs = data.CustomerGateways.Where(p => p.isEnabled == true);
}
当我调用代码时,它会抛出异常。
知道可能出了什么问题吗?
在 Windows 上运行良好。
我把异常写到了屏幕上。 DbLinq.Data.Linq.Mapping.AttributedMetaType+c__Iterator0.MoveNext() [0x00000] in :0 at System.Collections.Generic.List System.Data.Linq.Mapping.MetaAssociation .AddEnumerable
最佳答案
好吧,我明白了。在 Linq 的映射中,您拥有连接的所有表。这些连接必须是内部的而不是公共(public)的。过去当我必须序列化数据时我就这样做过。由于某种原因公开会导致 PK 循环。
无论哪种方式,在 Linq Map 中将其更改为内部即可。
关于c# - Debian 7 Linq To SQL 上的 Mono 字符串对象引用未设置为对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630540/