我收到的错误是"在数据库中拒绝了CREATE TABLE权限' DTP'"从数据库中的现有表访问数据时。我正在使用EF6。我遵循的步骤是 1)在项目中添加了对Entity框架的引用。 2)在web.config中将连接字符串添加为
<add name="OrderSummaryDatabaseContext" connectionString="data source=XYZ--D1;initial catalog=DTP_Table;user id=xyz;password=xyz;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
3)将数据上下文类定义为
public class OrderSummaryDatabaseContext :DbContext
{
public virtual DbSet<Document> Documents { get; set; }
}
4)定义文档类如下
public class Document
{
public int id { get; set; }
public int clientId { get; set; }
public int? reference { get; set; }
public string format { get; set; }
public string imagePath { get; set; }
public DateTime dateReceived { get; set; }
public DateTime? dateReported { get; set; }
public int? addedByUserId { get; set; }
public short? active { get; set; }
public DateTime? lastChangedDate { get; set; }
}
5)在我的数据层中获取详细信息
public void GetImageData()
{
int orderId = 1426;
try
{
using (var db = new OrderSummaryDatabaseContext())
{
var result = db.Documents.Where(x => x.id == orderId).ToList();
}
}
catch (Exception ex)
{
}
}
但我收到的错误是&#34;&#34;在数据库&#39; DTP&#39;&#34;中拒绝了CREATE TABLE权限。请帮助我,我不想使用EDMX文件。我想在没有那个的情况下这样做
答案 0 :(得分:0)
如果您不打算使用CodeFirst
,则应将其添加到上下文的构造函数中:
public OrderSummaryDatabaseContext()
{
Database.SetInitializer<OrderSummaryDatabaseContext>(null);
}
这将阻止EntityFramework尝试为您创建表。我不是百分之百确定这里发生了什么,但听起来是EntityFramework正试图根据你的代码为你创建表格,因为你已经创建了表格,它就失败了。