Ole*_*ban 4 sql entity-framework asp.net-mvc-4
我收到此错误:[SqlException(0x80131904):无效的对象名称'dbo.UserRoles'.],但我无法捕获错误的位置.我可以从其他表中检索其他数据,但不是这样.
条件是:
web.config中的连接字符串:
<add name="myStoreConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename='|DataDirectory|\myStore.mdf';Integrated Security=True" providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
背景:
public class AdminMyStoreConnection : DbContext
{
public DbSet<UserRole> UserRoles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
用于创建数据库的sql脚本:
CREATE TABLE [dbo].[UserRoles] (
[RoleId] INT IDENTITY (1, 1) NOT NULL,
[RoleName] NVARCHAR (256) NOT NULL,
PRIMARY KEY CLUSTERED ([RoleId] ASC),
UNIQUE NONCLUSTERED ([RoleName] ASC)
);
Run Code Online (Sandbox Code Playgroud)
模型:
[Table("UserRoles")]
public class UserRole
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int RoleId { get; set; }
public string RoleName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
带索引视图的控制器:
private UsersContext db = new UsersContext();
public ActionResult Index()
{
return View(db.Customers.ToList());
}
Run Code Online (Sandbox Code Playgroud)
视图:
@using myStore.Helpers
@model IEnumerable<myStore.Areas.Administrator.Models.UserRole>
@{
ViewBag.Title = "Roles management";
}
<h2>Roles management</h2>
<div class="admin-container">
<div class="bcontrol">
<a href="@Url.Action("Create", "Roles")" class="btn btn-large btn-primary"><i class="icon-plus-sign"></i> Create New Entry</a>
</div>
@{
var grid = new WebGrid(Model, defaultSort: "RoleId", canSort:true, canPage: true, rowsPerPage:20);
}
@grid.GetHtml(
tableStyle: "tadmin",
alternatingRowStyle: "alt",
selectedRowStyle: "selected-row",
columns:
grid.Columns(
grid.Column("RoleId",
header: "ID " + Html.SortDirection(ref grid, "RoleId"),
style: "tadmin-id"),
grid.Column("RoleName",
header: "Role Name " + Html.SortDirection(ref grid, "RoleName"),
format: @<text><a href="@Url.Action("Details", "Roles", new { id = item.RoleId })" >@item.RoleName</a></text>),
grid.Column("Control", style: "tadmin-control", canSort: false,
format:
@<text><a href="@Url.Action("Edit", "Roles", new { id = item.RoleId })" class="btn btn-large btn-primary"><i class="icon-edit"></i> Edit</a>
<a href="@Url.Action("Details", "Roles", new { id = item.RoleId })" class="btn btn-large btn-primary"><i class="icon-list"></i> Details</a>
<a href="@Url.Action("Delete", "Roles", new { id = item.RoleId })" class="btn btn-large btn-primary"><i class="icon-minus-sign"></i> Delete</a></text>)
)
)</div>
Run Code Online (Sandbox Code Playgroud)
和错误消息:
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: Invalid object name 'dbo.UserRoles'.
Source Error:
Line 19: public ActionResult Index()
Line 20: {
Line 21: return View(db.UserRoles.ToList());
Line 22: }
Line 23:
Run Code Online (Sandbox Code Playgroud)
和堆栈跟踪:
[SQLEXCEPTION(0x80131904):无效的对象名称dbo.UserRoles']
System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔breakConnection,Action`1 wrapCloseInAction)1753986
System.Data.SqlClient.SqlInternalConnection.OnError(SQLEXCEPTION exception,Boolean breakConnection,Action`1 wrapCloseInAction)+5296058 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,Boolean callerHasConnectionLock,Boolean asyncClose)+558
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader数据流,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,布尔逻辑dataReady)1682
System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()59
System.Data.SqlClient.SqlDataReader.get_MetaData()+90
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,String resetOptionsString)+365
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔returnStream,布尔异步,的Int32超时,任务&任务,布尔asyncWrite)1379
System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔returnStream,字符串方法,TaskCompletionSource`1完成的Int32超时,任务&任务,布尔asyncWrite)175
System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,runBehavior runBehavior,布尔returnStream,字符串方法)53
System.Data.SqlClient.SqlCommand.ExecuteReader(的CommandBehavior行为,字符串方法)134
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(的CommandBehavior行为)41
System.Data.Common.DbCommand.ExecuteReader(的CommandBehavior行为)10系统. Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior behavior)+437[EntityCommandExecutionException:执行命令定义时发生错误.详细情况请参考内部异常.]
System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,的CommandBehavior行为)507
System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute(ObjectContext的上下文中,ObjectParameterCollection的parameterValues)730
System.Data. Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)+131
System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()+36 System.Data.Entity.Internal.Linq.InternalQuery` 1.GetEnumerator
()+ 72 System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()+23
System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()+40 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)+369 System.Linq.Enumerable .ToList(IEnumerable`1 source)+58
myStore.Areas.Administrator.Controllers.RolesController.Index()在d:.projects\trains\myStore\myStore\Areas\Administrator\Controllers\RolesController.cs:21 lambda_method(Closure, ControllerBase,Object [])+ 62
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object [] parameters)+14
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary`2 parameters)+211
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary`2参数)27
System.Web.Mvc.Async.<> c__DisplayClass42.b__41()28 System.Web.Mvc.Async.<> c__DisplayClass8`1.b__7(IAsyncResult的_)+10 System.Web.Mvc.Async.WrappedAsyncResult`1.End()+57 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult的asyncResult)+48
System.Web.Mvc.Async.<> c__DisplayClass39.b__33()57 System.Web.Mvc.Async.<> c__DisplayClass4f.b__49()223 System.Web.Mvc.Async.<> c__DisplayClass37.b__36(IAsyncResult的asyncResult )10 System.Web.Mvc.Async.WrappedAsyncResult`1.End()57个System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult的asyncResult)48
System.Web.Mvc.Async.<> c__DisplayClass2a.b__20 ()+24 System.Web.Mvc.Async.<> c__DisplayClass25.b__22(IAsyncResult asyncResult)+102 System.Web.Mvc.Async.WrappedAsyncResult`1.End()+57 System.Web.Mvc.Async.AsyncControllerActionInvoker. EndInvokeAction(IAsyncResult asyncResult)+43
System.Web.Mvc.<> c__DisplayClass1d.b__18(IAsyncResult asyncResult)+14
System.Web.Mvc.Async.<> c__DisplayClass4.b__3(IAsyncResult ar)+23 System.Web.Mvc.Async.WrappedAsyncResult`1.End()+62
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+ 57 System.Web.Mvc.Async.<> c__DisplayClass4.b__3(IAsyncResult ar)+23 System.Web.Mvc.Async.WrappedAsyncResult`1.End()+62
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) 47
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult的asyncResult)10
System.Web.Mvc.<> c__DisplayClass8.b__3(IAsyncResult的asyncResult)25
System.Web.Mvc. Async.<> c__DisplayClass4.b__3(IAsyncResult ar)+23 System.Web.Mvc.Async.WrappedAsyncResult`1.End()+62
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+47 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.执行()+9628700 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)+155
遗憾的是这个问题非常简单 - 因为我有2个区域 - 主要和管理员,我分别有2种类型的数据连接,我在webconfig中只有1个连接字符串.在我为管理上下文添加第二行之后,所有工作都要感谢注意)因此webconfig中的问题是不完整的(错误配置)
| 归档时间: |
|
| 查看次数: |
23358 次 |
| 最近记录: |