我试图从SQL类映射到LINQ集合,但我失败了..LINQ到SQL中,System.Exception的转换无效
我有这个类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Linq;
using System.Data.Linq.Mapping;
namespace SportsStore.Entities
{
[Table(Name = "Products")]
public class Product
{
[Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
public int ProductID { get; set; }
[Column]public string Name { get; set; }
[Column]public string Description { get; set; }
[Column]public `int` Price { get; set; }
[Column]public string Category { get; set; }
}
}
我称之为类从另一个类:
using SportsStore.Abstract;
using SportsStore.Entities;
using System.Data.Linq;
using System.Linq;
namespace SportsStore.Concrete
{
public class SqlProductsRepository : IProductRepository
{
private Table<Product> productsTable;
public SqlProductsRepository(string connnectionString)
{
productsTable = (new DataContext(connnectionString)).GetTable<Product>();
}
public IQueryable<Product> Products
{
get { return productsTable; }
}
}
}
基本上,我得到这个:
基地{System.SystemException} = { “指定的转换无效。”}
这意味着中投无效
更新 我的数据库看起来像这样:
>
**ProductID int (primary key) Name
nvarchar(100) Description
nvarchar(500) Category
nvarchar(50) Price int**
堆栈跟踪:
[InvalidCastException的:指定的转换无效。]
System.Data.SqlClient.SqlBuffer.get_Decimal()274
System.Data.SqlClient.SqlDataReader.GetDecimal(的Int32ⅰ)44
Read_Product(ObjectMaterializer1) +1088
2.MoveNext()32
System.Data.Linq.SqlClient.ObjectReader
System.Collections.Generic.List1..ctor(IEnumerable
1集合)406 System.Linq.Enumerable.ToList(IEnumerable的1 source) +58
2参数)409
SportsStore.Controllers.ProductController.List() in D:\Call.of.Duty.Modern.Warfare.3-RELOADED\SportsStore\SportsStore\SportsStore\Controllers\ProductController.cs:28 lambda_method(Closure , ControllerBase , Object[]) +96
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +51
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod (ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDict离子2 parameters) +52
1续)+436
System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() +127 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func
System.Web.Mvc。 <> C_ DisplayClassf.b _c() 61 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext,IList的1 filters, ActionDescriptor actionDescriptor, IDictionary
2参数)305
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext ,字符串actionName)830
System.Web.Mvc.Controller.ExecuteCore()136
System.Web.Mvc.ControllerBase.Execute(RequestContext的RequestContext的) 111 System.Web.Mvc.ControllerBase.System.Web .Mvc.IController.Execute(RequestContext requestContext)+39
System.Web.Mvc。 <> c_ DisplayClass8.b _4()+65
System.Web.Mvc.Async。 <> c_ DisplayClass1.b _0()+44
System.Web.Mvc.Async。 <> c__DisplayClass81.End()141 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult的asyncResult, 对象标签)54
System.Web.Mvc.Async.AsyncResultWrapper。端(IAsyncResult的asyncResult, 对象标签)40
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult的asyncResult) 52 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult的 结果)+ 38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 8966925 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔& completedSynchronously)184
什么是'productsTable'的类型,什么是异常的细节(完整的堆栈跟踪等)? – 2012-01-09 12:11:42
我将返回的产品表转换成列表..使用toList ..稍后 – 2012-01-09 12:14:05
当我进入代码productsTable不显示任何结果返回..它给我例外的结果 – 2012-01-09 12:16:48