Ошибка новичка в методах расширения Linq с Entity Framework

cantdoanything33 спросил: 13 октября 2017 в 07:41 в: c#

Я пишу свое первое приложение с Entity Framework и заблудился. Я следовал советам из похожих потоков, но безуспешно.

Я хочу выполнить следующее в моем методе обслуживания (просто получить ВСЕ данные):

 using (WeatherStationDbContext entityContext = new WeatherStationDbContext())
            {
                var weatherData = entityContext.Weather
                                                .Include(x => x.Sensor)
                                                .Include(x => x.Position.Select(p => p.Location))
                                                .ToList();(...)

А в .Include (x = > x.Position. Select (p = > p.Location)) я получаю ошибку: "Position" не содержит определение для "Выбрать" и без расширения метода "Выбрать", принимающий ...

Я следовал коду, например, для https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx

// Load all blogs, all related posts, and all related comments 
var blogs1 = context.Blogs 
                   .Include(b => b.Posts.Select(p => p.Comments)) 
                   .ToList(); 

Мои классы:

public class Location
{
    public int Id { get; set; }    public string Description { get; set; }    public int Width { get; set; }    public int Length { get; set; }
}public class Position
{
    public int Id { get; set; }    public int SensorId { get; set; }    public virtual Sensor Sensor { get; set; }    public int LocationId { get; set; }    public virtual Location Location { get; set; }    public string Description { get; set; }    public float CoordinateX { get; set; }    public float CoordinateY { get; set; }}public class Sensor
{
    public int Id { get; set; }    public string Description { get; set; }
}public class Weather
{
    public int Id { get; set; }    public int SensorId { get; set; }    public virtual Sensor Sensor { get; set; }    public int PositionId { get; set; }    public virtual Position Position { get; set; }    public float Temperature { get; set; }    public float Humidity { get; set; }    public DateTime Date { get; set; }
}

В DbContext:

public DbSet<Sensor> Sensor { get; set; }
public DbSet<Location> Location { get; set; }
public DbSet<Position> Position { get; set; }
public DbSet<Weather> Weather { get; set; }protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();    modelBuilder.Entity<Weather>()
                .HasRequired(c => c.Sensor)
                .WithMany()
                .WillCascadeOnDelete(false);    modelBuilder.Entity<Weather>()
                .HasRequired(c => c.Position)
                .WithMany()
                .WillCascadeOnDelete(false);}

0 ответов