Я пытался по-разному это сделать, но я могу заставить его работать. У меня есть класс с именем CampoConfiguracionVista
, определенный следующим образом
public class CampoConfiguracionVista
{
public CampoConfiguracionVista()
{
}
public int IDCampo { get; set; }
public int IDConfiguracion { get; set; }
public string Nombre { get; set; }
public bool ValidationEspecial { get; set; }
public bool Requerido { get; set; }
public int IDTipodato { get; set; }
public int? minimo { get; set; }
public int? maximo { get; set; }
public string[] valores { get; set; }
}
И у меня есть linq, где у меня есть поле i с именем Valores
, которое содержит строковое значение, разделенное на ;
Итак, что я хочу сделать, это разделить это значение поля на строковый массив, который я пробовал двумя способами:
первый: все в одном linq
var query = (from T in db.ConfiguracionCampo
where T.IDTipificacion == idTipificacion
&& T.Campo.Activo == true
select new CampoConfiguracionVista()
{
IDCampo = T.Campo.IDCampo,
IDTipodato = T.IDTipodato,
ValidationEspecial = T.ValidationEspecial,
minimo = T.minimo,
maximo = T.minimo,
Requerido = T.Requerido,
Nombre = T.Campo.Nombre,
valores = T.Valores.Split(';')
}).ToList();
Во-вторых: я думаю, что проблема заключалась в том, что linq не может перевести разбиение в sql, поэтому я создал два linq, подобных этому *
var query = (from T in db.ConfiguracionCampo
where T.IDTipificacion == idTipificacion
&& T.Campo.Activo == true
select T);
var camposConfigurados = (from D in query select D).Select(C => new CampoConfiguracionVista()
{
IDCampo = C.Campo.IDCampo,
IDTipodato = C.IDTipodato,
ValidationEspecial = C.ValidationEspecial,
minimo = C.minimo,
maximo = C.minimo,
Requerido = C.Requerido,
Nombre = C.Campo.Nombre,
valores = C.Valores.Split(';')
}).ToList();
Что я делаю не так ??