簡體   English   中英

實體框架DataContext返回空值

[英]Entity Framework DataContext returns empty values

我創建了一個DataContext。

namespace Attendance.DataAccess.DAL
{
    using System.Data.Entity;
    using System.Data.Entity.ModelConfiguration.Conventions;
    using Attendance.DataAccess.Models;

    public class AttendanceContext : DbContext
    {
        public DbSet<Person> Persons { get; set; }
        public AttendanceContext()
            : base("AttendanceContext")
        { 

        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
    }
}

我已經創建了一個配置。

namespace Attendance.DataAccess.Migrations
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Migrations;
    using System.Linq;
    using Attendance.DataAccess.Models;
    using Attendance.DataAccess.DAL;

    internal sealed class Configuration : DbMigrationsConfiguration<AttendanceContext>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = false;
        }

        protected override void Seed(AttendanceContext context)
        {
            context.Persons.AddOrUpdate(
              p => p.FirstName,
              new Person { FirstName = "Andrew Peters" },
              new Person { FirstName = "Brice Lambson" },
              new Person { FirstName = "Rowan Miller" }
            );

        }
    }
}

我已經創建了一個初始遷移。

namespace Attendance.DataAccess.Migrations
{
    using System;
    using System.Data.Entity.Migrations;

    public partial class InitialCreate : DbMigration
    {
        public override void Up()
        {
            CreateTable(
                "dbo.Person",
                c => new
                    {
                        Id = c.Int(nullable: false, identity: true),
                        FirstName = c.String(),
                        LastName = c.String(),
                    })
                .PrimaryKey(t => t.Id);

        }

        public override void Down()
        {
            DropTable("dbo.Person");
        }
    }
}

我創建了一個簡單的api控制器。

namespace Attendance.WebApi.Controllers
{

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
    using Attendance.DataAccess.Models;
    using Attendance.DataAccess.DAL;
    using System.Data.Entity;

    public class PersonController : ApiController
    {
        // http://localhost/Attendance.WebApi/api/person
        public IEnumerable<Person> GetAllPersons()
        {
            AttendanceContext db = new AttendanceContext();

            var persons = 
                    from person
                    in db.Persons
                    select person;

            // this is always an empty array
            // I.e. the web browser displays <ArrayOfPerson/>
            return persons.ToList();
        }
    }
}

我將其配置如下:

<connectionStrings>
  <add name="AttendanceContext" 
       connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=AttendanceLocal;Integrated Security=SSPI;" 
       providerName="System.Data.SqlClient"/>
</connectionStrings>

我還使用服務器資源管理器和對象資源管理器直接查詢了數據庫。 數據庫在“個人”表中有行。 為什么這些行沒有顯示在Entity Framework DataContext Person中?

我需要在Nuget軟件包管理器控制台中運行Update-Database 我正在查詢的數據庫沒有種子值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM