Domanda

Mi piacerebbe sapere che c'è un modo per escludere alcuni campi dal database? Per esempio:

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string FatherName { get; set; }

    public bool IsMale { get; set; }
    public bool IsMarried { get; set; }

    public string AddressAs { get; set; }
}

Come faccio a escludere il settore AddressAs dal database?

È stato utile?

Soluzione

Nella versione attuale l'unico modo per escludere un immobile è di mappare in modo esplicito tutte le altre colonne:

builder.Entity<Employee>().MapSingleType(e => new {
  e.Id,
  e.Name,
  e.FatherName,
  e.IsMale,
  e.IsMarried
});

A causa AddressAs non viene fatto riferimento non è parte dell'Ente / Database.

Il team di EF è considerando l'aggiunta di qualcosa di simile a questo:

builder.Entity<Employee>().Exclude(e => e.AddressAs);

Vi suggerisco di dire lasciare un commento sul blog EFDesign, chiedendo questa funzione:)

Spero che questo aiuti

Alex

Altri suggerimenti

per riferimento futuro: è possibile utilizzare le annotazioni di dati MSDN EF - primo codice dati NOTE

[NotMapped]        
public string AddressAs { get; set; }

So che questa è una vecchia questione, ma nel caso qualcuno (come me) viene dalla ricerca ...

Ora è possibile in Entity Framework 4.3 per fare questo. Si potrebbe farlo in questo modo:

builder.Entity<Employee>().Ignore(e => e.AddressAs);

E 'anche possibile aggiungere la colonna che si desidera ignorare come shadow proprietà nel DbContext:

builder.Entity<Employee>().Property<string>("AddressAs");

Poi si può interrogare su quella colonna in questo modo:

context.Employees.Where(e => EF.Property<string>(e, "AddressAs") == someValue);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top