【问题标题】:Entity Framework returns zero results实体框架返回零结果
【发布时间】:2020-09-09 06:04:56
【问题描述】:

我首先使用实体​​框架代码创建了一个数据库,并在一个表中植入了 4 列(参见屏幕截图)。 现在我想从联系人表中检索所有联系人,但收到零结果。 如果我通过管理工作室(也在屏幕截图中)从 ef 执行生成的 sql,它工作正常。 我写了一些测试代码,但连接似乎也很好。 我不知道该去哪里找了。

  public class ContactDataService : IContactDataService
{
    public IEnumerable<Contact> GetAll()
    {
     using (var ctx = new ContactOrganizerDbContext())
        {

            List<Contact> contacts = ctx.Contacts.AsNoTracking().ToList();
            //returns true
            bool isValid = ctx.Database.Exists();
            //returns also true
            bool canOpenClose = canConnectionOpenedAndClosed(ctx);
            return contacts;
        }
    }

    private bool canConnectionOpenedAndClosed(ContactOrganizerDbContext ctx)
    {
        try
        {
            ctx.Database.Connection.Open();
            ctx.Database.Connection.Close();
        }
        catch (SqlException)
        {
            return false;
        }
        return true;
    }
}

//C#类

    public class Contact
{
    public int Id { get; set; }

    [Required]
    [StringLength(50)]
    public string FirstName { get; set; }
    [StringLength(50)]
    public string LastName { get; set; }
    [StringLength(50)]
    public string Email { get; set; }
}

【问题讨论】:

  • 您能否发布 C# 类及其联系人实体相关数据库表的定义?
  • 您是否连接到正确的数据库?检查你的连接字符串我猜你在另一个实例/数据库上
  • 您需要检查实体连接字符串以确保它是正确的。 Entity 还使用 EDMX 文件将数据库映射到 c# 中的类。如果 EDMX 文件不正确,您将不会得到任何结果。

标签: c# sql-server entity-framework-6


【解决方案1】:

好吧,entityframework 在两台不同的服务器上创建了相同的数据库。 所以 Arman Ebrahimpour 和 jdweng 是对的,我看错了数据库。

【讨论】:

    猜你喜欢
    • 2015-05-29
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多