【发布时间】: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