gpt4 book ai didi

c# - 在 "CREATE TABLE permission denied in database"ASP.NET - MVC4 中列出表结果

转载 作者:可可西里 更新时间:2023-11-01 08:37:45 27 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 4 - c# 连接到实时数据库并列出结果,但是当我查看页面时它返回以下错误:

CREATE TABLE permission denied in database 'DatabaseName'.

Description: An unhandled exception occurred during the execution
of the current web request. Please review the stack trace for more
information about the error and where it
originated in the code.



Exception Details: System.Data.SqlClient.SqlException: CREATE TABLE
permission denied in database 'DatabaseName'.

Source Error:


Line 16: public ActionResult Index()
Line 17: {
Line 18: return View(db.AccControls.ToList());
Line 19: }
Line 20

Controller :

namespace TestDBCon.Controllers
{
public class HomeController : Controller
{
private DataDbContext db = new DataDbContext();

public ActionResult Index()
{
return View(db.AccControls.ToList());
}

}
}

AccControl.cs(模型)

namespace TestDBCon.Models
{
public class AccControl
{
public int ID { get; set; }
public int ControlCode { get; set; }
public string Nominal { get; set; }
public string CostCentre { get; set; }
public string Department { get; set; }
}

public class DataDbContext : DbContext
{
public DbSet<AccControl> AccControls { get; set; }
}
}

网络配置:

<add name="DataDbContext" connectionString="Data Source=***;initial catalog=***;integrated security=True;" providerName="System.Data.SqlClient" />

我不是要创建表格吗?我只是想列出结果,所以我非常困惑。一定是跟MVC有关吧?

如有任何帮助,我们将不胜感激!

谢谢

最佳答案

我知道它已经过时了,但由于我遇到了同样的问题并且我花了一段时间才找到解决方案...我决定分享这些信息。所以我必须做两件事来解决这个问题,第一件事是禁用迁移:

# Migrations/Configuration.cs
internal sealed class Configuration : DbMigrationsConfiguration<IntranetApplication.Models.MyDb1>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
}

但这还不够,我还必须确保播种机不运行。您可以使用这段额外的代码取消它:

#Global.asax.cs
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
Database.SetInitializer<Models.MyDb1>(null);
Database.SetInitializer<Models.MyDb2>(null);

...
}

然后我终于可以使用 LINQ 执行 SELECT 并且只有 READ 访问权限

编辑
根据 Lawrence 的建议,最好将它直接放在 DB Context Constructor 中。感谢您的提示,我更新了我的代码,现在它看起来像这样:

public partial class MyDb1 : DbContext
{
public MyDb1()
: base("name=MyDb1Connection")
{
Database.SetInitializer<Models.MyDb1>(null);
}

...
}

关于c# - 在 "CREATE TABLE permission denied in database"ASP.NET - MVC4 中列出表结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14727397/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com