I am trying to map a class from SQL to linq library, but I fail.
I have this class:
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; } } }
I am calling this class from another class:
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; } } } }
Basically, I get the following:
base {System.SystemException} = {"The specified cast is not valid." }
This means that the cast is invalid.
My database update looks like this:
<P →
**ProductID int (primary key) Name nvarchar(100) Description nvarchar(500) Category nvarchar(50) Price int**
Stacktrace:
[InvalidCastException: The specified listing is not valid.]
System.Data.SqlClient.SqlBuffer.get_Decimal () +274
System.Data.SqlClient.SqlDataReader.GetDecimal (Int32 i) +44
Read_Product (ObjectMaterializer 1 ) +1088
System.Data.Linq.SqlClient.ObjectReader 1 ) +1088
System.Data.Linq.SqlClient.ObjectReader 1 ) +1088
System.Data.Linq.SqlClient.ObjectReader 2.MoveNext () +32
System.Collections.Generic.List 1..ctor(IEnumerable 1 collection) +406 System.Linq.Enumerable.ToList (parameters IEnumerable 1 source) +58
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 1 source) +58
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 1 source) +58
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 2) +409
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod (ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2 parameters) +52
System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() +127 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 2 parameters) +52
System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() +127 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 2 parameters) +52
System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() +127 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 1 continued) +
System.Web.Mvc <. > C_DisplayClassf.b_c () +61 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters (ControllerContext controllerContext, IList 1 filters, ActionDescriptor actionDescriptor, IDictionary 2 parameters) +305
System.Web.Mvc.ControllerActionInvoker.InvokeAction (ControllerContext controllerContext, String 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__DisplayClass8 1.<BeginSynchronous>b__7(IAsyncResult _) +42 System.Web.Mvc.Async.WrappedAsyncResult 1.End () +141 System.Web.Mvc.Async.AsyncResultWrapper.End (IAsyncResult asyncResult Objectync 54
System.Web.Mvc.Async.AsyncResultWrapper.End (IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.MvcHandler.EndProcessRequest (IAsyncResult asyncResult) +52 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest (IAsyncResult result) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +8966925 System.Web.HttpApplication.ExecuteStep (step IExecutionStep, Boolean & completed synchronously) +184