相关疑难解决方法(0)

我如何使用IValidatableObject?

据我所知,IValidatableObject它用于以一种方式验证对象,让人们相互比较属性.

我仍然希望有属性来验证单个属性,但我想在某些情况下忽略某些属性的失败.

我是否试图在下面的情况下错误地使用它?如果不是我如何实现这个?

public class ValidateMe : IValidatableObject
{
    [Required]
    public bool Enable { get; set; }

    [Range(1, 5)]
    public int Prop1 { get; set; }

    [Range(1, 5)]
    public int Prop2 { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (!this.Enable)
        {
            /* Return valid result here.
             * I don't care if Prop1 and Prop2 are out of range
             * if the whole object is not "enabled"
             */
        }
        else
        {
            /* Check if Prop1 and Prop2 …
Run Code Online (Sandbox Code Playgroud)

c# asp.net ivalidatableobject

163
推荐指数
4
解决办法
11万
查看次数

'System.Guid'失败,因为具体化值为null.结果类型的泛型参数或查询必须使用可空类型

编辑:打电话

  var _data = context.Database.SqlQuery<InfoViewModel>(sql).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

如果我在sql管理工作室中运行以下sql并且其工作没有抛出任何错误但是如果我使用EF调用相同的查询则抛出以下错误消息:

这是我的SQL:

SELECT 
 FROM dbo.Clients LEFT OUTER JOIN  
 dbo.aspnet_Users AS c ON dbo.Clients.CollectionsAssignedTo = c.UserId 
 LEFT OUTER JOIN dbo.aspnet_Users AS b ON dbo.Clients.Auditors_Key = b.UserId 
 LEFT OUTER JOIN dbo.aspnet_Users AS a ON dbo.Clients.AcctRep = a.UserId 
 WHERE dbo.Clients.ClientPKID = 'ce723426-dert-4c36-980a-f5181870d0d4'
Run Code Online (Sandbox Code Playgroud)

转换为值类型'System.Guid'失败,因为具体化值为null.结果类型的泛型参数或查询必须使用可空类型

sql sql-server entity-framework

5
推荐指数
1
解决办法
5302
查看次数