Я немного запутался в проблеме и не знаю, как ее решить. Итак, проблема в следующем. У меня есть два Models
( ReportElement, ReportDefinition ) и один ViewModel
( ReportElementDefinitionVM )
Модель определения отчета
public partial class IzvjestajDefinicija
{
public IzvjestajDefinicija()
{
IzvjestajElementi = new HashSet<IzvjestajElementi>();
IzvjestajiGenerisani = new HashSet<IzvjestajiGenerisani>();
}
public int IzvjestajDefinicijaId { get; set; }
public int? IzvjestajTipId { get; set; }
public int? IzvjestajXsdshemaiId { get; set; }
public string KratkiNaziv { get; set; }
public string Naziv { get; set; }
public string Opis { get; set; }
public byte Status { get; set; }
public DateTime DatumUnosa { get; set; }
public DateTime? DatumAzuriranja { get; set; }
public string KorisnikUnosa { get; set; }
public string KorisnikAzurirao { get; set; }
public virtual IzvjestajTip IzvjestajTip { get; set; }
public virtual IzvjestajXsdshema IzvjestajXsdshemai { get; set; }
public virtual ICollection<IzvjestajElementi> IzvjestajElementi { get; set; }
public virtual ICollection<IzvjestajiGenerisani> IzvjestajiGenerisani { get; set; }
}
Модель ReportElement
public partial class IzvjestajElementi
{
public int IzvjestajElementiId { get; set; }
public int? IzvjestajDefinicijaId { get; set; }
public string Element { get; set; }
public string ElementVrijednosti { get; set; }
public byte Status { get; set; }
public DateTime DatumUnosa { get; set; }
public DateTime? DatumAzuriranja { get; set; }
public string KorisnikUnosa { get; set; }
public string KorisnikAzurirao { get; set; }
public virtual IzvjestajDefinicija IzvjestajDefinicija { get; set; }
}
И ReportElementDefinitionVM
public class GenerisaniIzvjestajiVM
{
public int IzvjestajiGenerisaniId { get; set; }
public int? IzvjestajDefinicijaId { get; set; }
public int? IzvjestajXsdshemaiId { get; set; }
public string ShemaXSD { get; set; }
public string KratkiNazivDefinicijeI { get; set; }
public string Naziv { get; set; }
public string Opis { get; set; }
public string Izvjestaj { get; set; }
public DateTime DatumOd { get; set; }
public DateTime DatumDo { get; set; }
public string ImportedExcel { get; set; }
public DateTime DatumKreiranja { get; set; }
public byte Status { get; set; }
public DateTime DatumUnosa { get; set; }
public DateTime? DatumAzuriranja { get; set; }
public string KorisnikUnosa { get; set; }
public string KorisnikAzurirao { get; set; }
public string NazivXmlfajla { get; set; }
public string Elementi { get; set; }
public string ElementiVrijednosti { get; set; }
}
И сейчас у меня есть один Select
статус, который принимает значение от ReportDefinition
и ReportElementDefinitionVM
public ListaSveVM UcitajIzvjestaj()
{
var listaFromDb = _context.IzvjestajDefinicija.Where(x => x.Status == 1).ToList().OrderByDescending(x => x.IzvjestajDefinicijaId);
var listaM = new List<GenerisaniIzvjestajiVM>();
var data = _context.IzvjestajDefinicija.Where(x => x.Status == 1).OrderByDescending(x => x.IzvjestajDefinicijaId)
.Select(i => new GenerisaniIzvjestajiVM()
{
IzvjestajiGenerisaniId = i.IzvjestajDefinicijaId,
KratkiNazivDefinicijeI =
(_context.IzvjestajDefinicija.Where(x => x.IzvjestajDefinicijaId == i.IzvjestajDefinicijaId && x.Status == 1).FirstOrDefault()).KratkiNaziv,
Naziv = i.Naziv,
Opis = i.Opis,
IzvjestajXsdshemaiId = i.IzvjestajXsdshemaiId,
ShemaXSD = i.IzvjestajXsdshemai.Shema,
}).ToList();
var lista = "";
lista = JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.None);
var listaVM = new ListaSveVM();
listaVM.sve = lista;
return listaVM;
}
И сейчас я хочу взять два свойства из ReportElement, которое (Element, ElementValue) будет отображаться в моем View
, и пока я создаю что-то вроде этого:
var elementi = _context.IzvjestajElementi.Where(x => x.Status == 1).OrderBy(x => x.IzvjestajDefinicijaId)
.Select(i => new GenerisaniIzvjestajiVM()
{
Elementi = i.Element,
ElementiVrijednosti = i.ElementVrijednosti
}).ToList();
И когда я передаю elementi
, я получаю ошибку
lista = JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.None);
Severity Code Description Project File Line Suppression State
Error CS1503 Argument 2: cannot convert from 'System.Collections.Generic.List<IZ.Model.VM.GenerisaniIzvjestajiVM>' to 'Newtonsoft.Json.JsonConverter'
И я также пытаюсь создать другую ViewModel, чтобы объединить все данные из этих две модели, но я не могу получить данные. Извините за длинный пост, но проблема очень сложная, и я описываю проблему как можно лучше. Кто-нибудь знает, как решить эту проблему, я был бы очень благодарен.
Обновление
IzvjestajElementi.cs
using System;
using System.Collections.Generic;
namespace IZ.Model.DBModels
{
public partial class IzvjestajElementi
{
public int IzvjestajElementiId { get; set; }
public int? IzvjestajDefinicijaId { get; set; }
public string Element { get; set; }
public string ElementVrijednosti { get; set; }
public byte Status { get; set; }
public DateTime DatumUnosa { get; set; }
public DateTime? DatumAzuriranja { get; set; }
public string KorisnikUnosa { get; set; }
public string KorisnikAzurirao { get; set; }
public virtual IzvjestajDefinicija IzvjestajDefinicija { get; set; }
}
}
Поэтому я хочу объединить эти два в один. Выберите или переиздание эти два утверждения как один
var data = _context.IzvjestajDefinicija.Where(x => x.Status == 1).OrderByDescending(x => x.IzvjestajDefinicijaId)
.Select(i => new IzvjestajElementiVM()
{
IzvjestajDefinicijaId = i.IzvjestajDefinicijaId,
KratkiNazivDefinicijeI =
(_context.IzvjestajDefinicija.Where(x => x.IzvjestajDefinicijaId == i.IzvjestajDefinicijaId && x.Status == 1).FirstOrDefault()).KratkiNaziv,
Naziv = i.Naziv,
Opis = i.Opis,
ShemaXSD = i.IzvjestajXsdshemai.Shema,
}).ToList();
var elementi = _context.IzvjestajElementi.Where(x => x.Status == 1).OrderBy(x => x.IzvjestajDefinicijaId)
.Select(i => new IzvjestajElementiVM()
{
Elementi = i.Element,
ElementiVrijednosti = i.ElementVrijednosti
}).ToList();
Когда я передаю element
в
lista = JsonConvert.SerializeObject(data, elementi);
Я получаю ошибку
Ошибка CS1503 Аргумент 2: невозможно преобразовать из 'System. Collections.Generi c .List 'в' Newtonsoft. Json .Formatting '
Мне нужно что-то вроде этого
var data = _context.IzvjestajDefinicija.Where(x => x.Status == 1).OrderByDescending(x => x.IzvjestajDefinicijaId)
.Select(i => new IzvjestajElementiVM()
{
IzvjestajDefinicijaId = i.IzvjestajDefinicijaId,
KratkiNazivDefinicijeI =
(_context.IzvjestajDefinicija.Where(x => x.IzvjestajDefinicijaId == i.IzvjestajDefinicijaId && x.Status == 1).FirstOrDefault()).KratkiNaziv,
Naziv = i.Naziv,
Opis = i.Opis,
ShemaXSD = i.IzvjestajXsdshemai.Shema,
Elementi = i.Elementi,
ElementiVrijednosti = i.ElementiVrijednosti
});.ToList();
Я хочу отобразить Elementi и ElementiVrijednosti в виде данных. Elementi и ElementiVrijednosti не содержатся в IzvjestajDefinicija только в IzvjestaElementiVM я не могу назначить. Поэтому я хочу отобразить Elementi и Elementi vrijednosti в моем Datatable. Проверьте изображение ниже.
using System;
using System.Collections.Generic;
using System.Text;
namespace IZ.Model.VM
{
public class IzvjestajElementiVM
{
public int IzvjestajElementiId { get; set; }
public int? IzvjestajDefinicijaId { get; set; }
public int? IzvjestajXsdshemaId { get; set; }
public int? IzvjestajTipId { get; set; }
public string Naziv { get; set; }
public string Opis { get; set; }
public string Izvjestaj { get; set; }
public byte Status { get; set; }
public string KorisnikUnosa { get; set; }
public string KorisnikAzurirao { get; set; }
public string NazivXmlfajla { get; set; }
public string ShemaXSD { get; set; }
public string KratkiNazivDefinicijeI { get; set; }
public string Elementi { get; set; }
public string ElementiVrijednosti { get; set; }
}
}