отправить результат ToList () из концентратора клиенту - PullRequest
0 голосов
/ 12 июня 2018

Это мой класс в Entity Framework Code-Firts (я уменьшил его в вопросе):

public class dslam
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int id { get; set; }

    [ForeignKey("center")]
    public int centerId { get; set; }
    public center center { get; set; }

    [MaxLength(50)]
    [DisplayName("Title")]
    public string title { get; set; }

    [MaxLength(20)]
    [DisplayName("Type")]
    public string type { get; set; }

    [MaxLength(5)]
    [DisplayName("Port")]
    public string port { get; set; }

    [MaxLength(20)]
    [DisplayName("Host")]
    public string host { get; set; }
}

Это код на стороне клиента:

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);

Но я не могу использовать ToList(), кажется, ToList() что-то сломает, а alert('test');не триггер:

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);

Редактировать:

liDSLAMS не равно нулю: enter image description here

1 Ответ

0 голосов
/ 12 июня 2018

Хорошо, проблема была с Navigation Properties.

Кажется, объекты с свойством навигации не могут быть отправлены на сторону клиента.Также они не конвертируются в JSON .Просто выберите нужные свойства, кроме свойства навигации .

var liDSLAM = ed.dslams.Where(x => x.centerId == 1).Select(x => new { x.id, x.title }).ToList();
Clients.Client(hubConnectionId).setDSLAMInfo(liDSLAM);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...