实体框架返回零结果

Posted

技术标签:

【中文标题】实体框架返回零结果【英文标题】: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 文件不正确,您将不会得到任何结果。 【参考方案1】:

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

【讨论】:

以上是关于实体框架返回零结果的主要内容,如果未能解决你的问题,请参考以下文章

实体框架 FirstOrDefault 谓词未返回预期结果

在实体框架数据库优先方法中,如何从存储过程返回多个结果集?

SQL 服务器视图在实体框架中返回不同的结果

查询的结果从实体框架查询返回相同的 COLUMN_NAME 值,这没有意义

实体框架返回值操作

如何从实体框架中的存储过程中获取结果+数据库优先