我正在使用EF CodeFirst。我的课程是:
public class Persona
{
public int Id { get; set; }
public string Nombre { get; set; }
public string ApellidoUno { get; set; }
public string ApellidoDos { get; set; }
public virtual ICollection<Telefono> Telefonos { get; set; }
}
public class Telefono
{
public virtual int Id { get; set; }
public virtual string Numero { get; set; }
public virtual int IdPersona { get; set; }
public virtual Persona Persona { get; set; }
}
public class ContactoContexto : DbContext
{
public ContactoContexto()
: base("EF_Model")
{ }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Persona>().ToTable("Personas");
// ... more Fluent API code.....
modelBuilder.Entity<Persona>()
.HasMany(x => x.Telefonos)
.WithRequired(x => x.Persona)
.HasForeignKey(x => x.IdPersona);
}
public DbSet<Persona> Personas { get; set; }
public DbSet<Telefono> Telefonos { get; set; }
}
当我尝试选择一些数据时,我收到以下错误:
错误1无法使用实用程序设计程序'EF_Model.ContactoContexto'。 '哪里'没有encontrado。 c:\ users \ jmolina \ documents \ visual studio 2013 \ Projects \ prueba EF general \ 3。 ModeloNEgocio \ ModeloNegocio.cs 27 39 3. ModeloNegocio
我选择的代码是:
public class Intento
{
public static IEnumerable<Persona> buscarcontactos(string nombre)
{
ContactoContexto conCon = new ContactoContexto();
var personas = (from p in conCon where p.nombre == nombre select p);
return personas;
}
}
我的代码有什么问题?
提前致谢。
尼莫
答案 0 :(得分:0)
当您在上下文中执行Linq查询时,您需要从DbSet
开始。您还应该在using语句中实例化DbContext
,以确保在完成后正确处理它。
using (var conCon = new ContactoContexto())
{
var personas = (from p in conCon.Personas where p.Nombre == nombre select p);
// you need to use ToList() to actually materialize the result from the database
return personas.ToList();
}