Necesito agregar un campo en el modelo que la Base de datos no tiene realmente el campo.Entity Framework 4 (usando EDMX), cómo agregar un campo para modelar que DB no tiene realmente el campo
Porque, primero traté de agregar el campo en la clase Entity solamente.
public partial class Weborder
{
(Auto Generated)
public int orderno {get; set;}
.
.
.
(Add Manually)
public string newField1 {get; set;} //this is new field that DB does not have
public string newField2 {get; set;} //this is new field that DB does not have
}
y más tarde, cuando actualizar EDXM continuación EDMX eliminar los nuevos campos de la base de datos porque no tiene el campo. . :(
Así que agregar el campo en el modelo EDMX manualmente (Add -> Escalar la propiedad)
entonces producirá un error durante la compilación, el mensaje de error decir:
Error 1 Error 3004: Problem in mapping fragments starting at line 399:No mapping specified for properties ...
An Entity with Key (PK) will not round-trip when:...
Alguien sabe cómo añadir nuevos campos a la clase de entidad
Gracias
EDITADO pOR:?! Si su modelo i s una representación de su base de datos y en la base de datos no tiene el campo, ¿por qué desea agregarlo manualmente?
=>
Al recuperar los datos, el tipo de retorno del objeto se la clase de entidad.
y antes de pasar los datos del controlador a la vista, necesito agregar más datos (campos) en el resultado IQueryable.
ex)
public DbSet<WEBORDERLN> WEBORDERLNs { get; set; }
//repository
public IQueryable<WEBORDERLN> WebOrderLns
{
get { return context.WEBORDERLNs; }
}
y ahora Obtener los datos weborderln en el controlador. y antes de pasar la vista, necesito
agregar datos adicionales en el resultado.
var data = webOrderLnRepository.WebOrderLns.Where(e => e.PICKNO == OrderNo).ToList();
foreach (WEBORDERLN weborderln in data)
{
weborderln.[NEW FIELD] = "EXTRA DATA"; //// FOR THIS, I NEED TO ADD NEW FILED INTO ENTITY CLASS
}
//return data
espero que podría explicar la pregunta :)
Gracias de nuevo.
Si su modelo es una representación de su base de datos y en la base de datos no tiene el campo, ¿por qué desea agregarlo manualmente? – Dante
@ Dante, gracias por su preocupación. Edité mi pregunta nuevamente, revise mi pregunta. Y si tiene alguna idea, por favor, avísenme. –
Básicamente está describiendo el escenario para la utilización de ViewModels, es decir. modelos mapeados de los modelos de datos y derivados de la vista con el propósito de pasar datos a (y posiblemente desde) la vista. Ahora siempre me he preguntado qué fácil sería construir ViewModels en Entity Framework (porque podría querer usar y consultar servicios de OData, etc.), pero no sé si realmente pertenecen allí. – JayC