c# - 从生成的表中检索数据时对象名称 'dbo.TableName' 无效

标签 c# .net sql-server entity-framework ef-code-first

我首先使用实体​​框架代码来创建我的表格。请注意 - 创建表,而不是数据库,因为我在托管环境中工作并且我没有允许创建数据库的用户。

提交数据库更新工作正常,但检索数据会出现异常:

Exception Details: System.Data.SqlClient.SqlException: Invalid object name 'dbo.EventHosts'.

我读到它发生是因为我没有使用 EF Code First 创建数据库。很好,但我该如何优雅地解决这个问题?

所有生成的表都没有像dbo这样的前缀。像这样的解决方案是行不通的,而且一点也不优雅:

[Table("EventHosts", Schema = "")]

最佳答案

好的,对我来说问题是我有一个名为 dbo.UserState 的表,并且在 C# 中 EF 正试图访问 dbo.UserStates 因为多元化。

解决方案是将 Table 属性放在类之上并指定确切的表名:

[Table("UserState")]
public class UserState
{
    [Key]
    public int UserId { get; set; }
}

关于c# - 从生成的表中检索数据时对象名称 'dbo.TableName' 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473184/

相关文章:

c# - 如何从 MVC 中的 DateTime 变量中删除时间部分

c# - DocumentDB 分页标记。不断获得 "wrong"一个

c# - 如何在 .NET Core 中对 Startup.cs 进行单元测试

DotNet 的 Javap 等效实用程序

sql-server - 带有 where 子句的内连接索引

sql - 如何将 GROUP 与 DATEPART 一起使用?

具有不同日期和时间字段的日期/时间之间的 SQL 查询

c# - 如何通过 C# 代码删除外部站点 cookie

c# - OxyPlot 中日期时间轴上的不规则间隔

c# - 为什么我的 .NET 应用程序不加载位于添加到 PATH 环境变量的文件夹中的程序集?