C# 类型';System.Int32';需要表示枚举类型
我正在尝试切换列值。我正在使用实体框架数据库连接C# 类型';System.Int32';需要表示枚举类型,c#,C#,我正在尝试切换列值。我正在使用实体框架数据库连接 public static void yayinDegistir(int id) { using (vt dc = new vt()) { Testler d = dc.testler.FirstOrDefault(t => t.testId.Equals(id)); if (d != null) { d.yayinda = !d.yayinda; //
public static void yayinDegistir(int id)
{
using (vt dc = new vt())
{
Testler d = dc.testler.FirstOrDefault(t => t.testId.Equals(id));
if (d != null)
{
d.yayinda = !d.yayinda; //bool value to toggle
dc.SaveChanges(); //error
}
}
}
错误是
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.InvalidOperationException: The type 'System.Int32' needs to represent an enumeration type.
Testler类
public class Testler
{
[Key]
[ScaffoldColumn(false)]
public virtual int testId { get; set; }
[DataType(DataType.Text)]
[Display(Name = "Test Adı")]
public virtual string testAdi { get; set; }
[DataType(DataType.MultilineText)]
public virtual string aciklama { get; set; }
[DataType(DataType.Text)]
[EnumDataType(typeof(int), ErrorMessage = "{0} mutlaka sayı olmalıdır!")]
public virtual int testSuresi { get; set; }
public virtual bool cokluSecim { get; set; }
[DataType(DataType.MultilineText)]
public virtual string oneriler { get; set; }
public virtual bool yayinda { get; set; }
public virtual ICollection<Sorular> sorular { get; set; }
}
值)+40216
System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(对象
值,ValidationContext ValidationContext)+115
System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(对象
值,ValidationContext ValidationContext)+29
System.Data.Entity.Internal.Validation.ValidationAttributeValidator.Validate(EntityValidationContext
entityValidationContext,InternalMemberEntry属性)+100
援引
System.ComponentModel.DataAnnotations.EnumDataTypeAttribute.IsValid。
有关详细信息,请参见内部异常。]
System.Data.Entity.Internal.Validation.ValidationAttributeValidator.Validate(EntityValidationContext
entityValidationContext,InternalMemberEntry属性)+170
System.Data.Entity.Internal.Validation.PropertyValidator.Validate(EntityValidationContext
entityValidationContext,InternalMemberEntry属性)+108
System.Data.Entity.Internal.Validation.EntityValidator.ValidateProperties(EntityValidationContext
entityValidationContext,InternalPropertyEntry父属性,列表1
验证错误)+100
System.Data.Entity.Internal.Validation.TypeValidator.Validate(EntityValidationContext
entityValidationContext,InternalPropertyEntry属性)+69
System.Data.Entity.Internal.Validation.EntityValidator.Validate(EntityValidationContext
entityValidationContext)+17
System.Data.Entity.Internal.InternalEntityEntry.GetValidationResult(IDictionary
项目)+193
System.Data.Entity.DbContext.ValidateEntity(DbEntityEntry entityEntry,IDictionary2项)+40
System.Data.Entity.DbContext.GetValidationErrors()+210
System.Data.Entity.Internal.InternalContext.SaveChanges()+44
System.Data.Entity.Internal.LazyInternalContext.SaveChanges()+33
System.Data.Entity.DbContext.SaveChanges()+20
D:\Projects\visualstudio 2010\Projects\hayatdestek\hayatdestek\Ramazan\Testler.cs:102中的Ramazan.TestIslem.yayinDegistir(Int32 id)
D:\Projects\visualstudio中的hayatdestek.Controllers.YonetimController.YayinDegistir(int32id)
2010\Projects\hayatdestek\hayatdestek\Controllers\YonetimController.cs:180
lambda_方法(闭包、控制器基、对象[])+97
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase控制器,对象[]参数)+14
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext
controllerContext,IDictionary
2个参数)+182
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext
controllerContext,ActionDescriptor ActionDescriptor,IDictionary2
参数)+27
System.Web.Mvc.Async.c__DisplayClass42.b__41()
+28
System.Web.Mvc.Async.c__显示类8
1.b__7(IAsyncResult
) +10
System.Web.Mvc.Async.WrappedAsyncResult1.End()+50
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult
异步结果)+32
System.Web.Mvc.Async.c__显示类39.b__33()
+58
System.Web.Mvc.Async.c__显示类4f.b__49()
+225
System.Web.Mvc.Async.c__显示类37.b__36(IAsyncResult asyncResult)+10
System.Web.Mvc.Async.WrappedAsyncResult
1.End()+50
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult
结果)+34
System.Web.Mvc.Async.c_DisplayClass2a.b_20()
+24
System.Web.Mvc.Async.c_DisplayClass25.b_22(IAsyncResult
结果)+99
System.Web.Mvc.Async.WrappedAsyncResult1.End()+50
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult
结果)+27
System.Web.Mvc.c__;u displayClassId.b_;u 18(IAsyncResult
结果)+14
System.Web.Mvc.Async.c\uuu DisplayClass4.b\uu 3(IAsyncResult
ar)+23
System.Web.Mvc.Async.WrappedAsyncResult
1.End()+55
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+39
System.Web.Mvc.Async.c_DisplayClass4.b_3(IAsyncResult
ar)+23
System.Web.Mvc.Async.WrappedAsyncResult1.End()+55
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+29
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult
结果)+10
System.Web.Mvc.c_uuudisplayClassB.b_uuu4(IAsyncResult
结果)+25
System.Web.Mvc.Async.c\uuu DisplayClass4.b\uu 3(IAsyncResult
ar)+23
System.Web.Mvc.Async.WrappedAsyncResult
1.End()+55
System.Web.Mvc.c_DisplayClasse.b_d()+31
System.Web.Mvc.SecurityUtil.b_0(操作f)+7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(操作)+23
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+59
System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.EndProcessRequest(IAsyncResult
结果)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
+9629296
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+155
来自@Pawel的答案
此异常似乎源自[EnumDataType(typeof(int)),
ErrorMessage=“{0}mutlaka sayıolmalıdır!”)]类型应该在哪里显示
枚举类型,而不是简单类型。请尝试将此属性删除到
测试工作。注意:EF不使用EnumDataType属性
这个问题可能和EF无关
您的堆栈跟踪:
[InvalidOperationException:类型'System.Int32'需要表示
枚举类型。]
System.ComponentModel.DataAnnotations.EnumDataTypeAttribute.IsVali
[InvalidOperationException: The type 'System.Int32' needs to represent an enumeration type.]
System.ComponentModel.DataAnnotations.EnumDataTypeAttribute.IsValid(Object
[DbUnexpectedValidationException: An unexpected exception was thrown during validation of 'Test Süresi (saniye) (0 süresiz)' when
[EnumDataType(typeof(int), ErrorMessage = "{0} mutlaka sayı olmalıdır!")]