据我所知,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) 编辑:打电话
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.结果类型的泛型参数或查询必须使用可空类型