Entity framework 将ToList()的结果从中心发送到客户端
这是我在Entity framework 将ToList()的结果从中心发送到客户端,entity-framework,linq,signalr,Entity Framework,Linq,Signalr,这是我在实体框架代码Firts中的类(我将其缩小了): 这是客户端代码: detailHub.client.setDSLAMInfo = function (liDslams) { alert('test'); } 如果我像这样使用dslam类,alert('test')将在我的客户端触发: List<dslam> liDSLAMS = new List<dslam>(); liDSLAMS.Add(new dslam { title = "1", Type=
实体框架代码Firts
中的类(我将其缩小了):
这是客户端代码:
detailHub.client.setDSLAMInfo = function (liDslams) {
alert('test');
}
如果我像这样使用dslam类,alert('test')代码>将在我的客户端触发:
List<dslam> liDSLAMS = new List<dslam>();
liDSLAMS.Add(new dslam { title = "1", Type= "2", Port= "3" });
var foo = JsonConvert.SerializeObject(liDSLAMS);
Clients.Client(hubConnectionId).setDSLAMInfo(foo);
编辑:
liDSLAMS
不为空:
好的,问题出在导航属性上
似乎无法将具有导航属性的对象发送到客户端。而且它们不能转换为JSON。只需选择所需的属性,导航属性除外
我认为您从“ed.dslams.Where(x=>x.centerId==1)”中得到了NULLmethod@IrshadAhmed不,我用断点liDSLAMS
测试了它,它有3条记录关于这个属性“public center center{get;set;}”你也从中得到了值吗?试试这个“liDSLAMS=ed.dslams.Include(I=>I.center)。其中(x=>x.centerId==1).ToList();“@IrshadAhmed谢谢,但我不认为这是因为空值,我也使用了include
,但问题并没有解决
List<dslam> liDSLAMS = new List<dslam>();
liDSLAMS.Add(new dslam { title = "1", Type= "2", Port= "3" });
var foo = JsonConvert.SerializeObject(liDSLAMS);
Clients.Client(hubConnectionId).setDSLAMInfo(foo);
List<dslam> liDSLAMS = new List<dslam>();
liDSLAMS = ed.dslams.Where(x => x.centerId == 1).ToList();
//this line will not work properly I guess ToList(); broke something
//var foo = JsonConvert.SerializeObject(liDSLAMS);
Clients.Client(hubConnectionId).setDSLAMInfo(foo);
var liDSLAM = ed.dslams.Where(x => x.centerId == 1).Select(x => new { x.id, x.title }).ToList();
Clients.Client(hubConnectionId).setDSLAMInfo(liDSLAM);