小编Joh*_*mer的帖子

如何在c#中为方法添加参数注释

当我使用任何.NET方法时,会有一些提示解释方法及其参数.

如何为自己的方法实现相同的行为?是否有Visual Studio功能允许我添加这些功能?

.net c#

28
推荐指数
3
解决办法
3万
查看次数

使用StartsWith创建Linq表达式,EndsWith和Contains传递Expression <Func <T,string >>

我想创建一个传递类型表达式的方法Expression<Func<T, string>来创建类型的表达式Expression<Func<T, bool>>来过滤字符串属性StartsWith,EndsWithContains使用这些表达式之类的方法:

.Where(e => e.MiProperty.ToUpper().StartsWith("ABC"));
.Where(e => e.MiProperty.ToUpper().EndsWith("XYZ"));
.Where(e => e.MiProperty.ToUpper().Contains("MNO"));
Run Code Online (Sandbox Code Playgroud)

该方法应如下所示:

public Expression<Func<T, bool>> AddFilterToStringProperty<T>(Expresssion<Func<T, string>> pMyExpression, string pFilter, FilterType pFiltertype)
Run Code Online (Sandbox Code Playgroud)

其中过滤式是包含三个所提到的操作的枚举类型(StartsWith,EndsWith,Contains)

c# linq

10
推荐指数
1
解决办法
7153
查看次数

使用ASP .NET MVC模型值来验证另一个模型值?

我有这样的模型类:

public class SomeClass
{
    public int EmployeeId {get;set;}
    public int DayTotal {get;set}
}
Run Code Online (Sandbox Code Playgroud)

对于此模型类,我正在为'DayTotal'属性创建自定义ValidationAttribute.自定义验证器将针对另一个定义允许的最大天数的表检查输入的值'DayTotal'值.

在验证器中编写查询时,如何从"创建"视图中引用所选的"EmployeeId"?

public class DayTotalAttribute : ValidationAttribute
{
    ProjectDBContext db = new ProjectDBContext();

    public override bool IsValid(object value)
    {
        if (value == null)
        {
            return false;
        }

        var products = from p in db.EmployeeDayMax
                       where p.EmployeeId = ???
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:

我的解决方案采取了不同的方法.有用的答案让我在其他地方寻找.此博客由斯科特谷有助于提供一个更简单的方法:

在我的模型中 - >

   public class SomeClass : IValidateObject
   {
         public int EmployeeId {get; set;}
         public int DayTotal {get; set;}

         public IEnumerable<ValidationResult> Validate(ValidationContext …
Run Code Online (Sandbox Code Playgroud)

c# validation model asp.net-mvc-3

9
推荐指数
1
解决办法
5524
查看次数

使用延迟加载的NHibernate ObjectProxy转换

我定义:

[ActiveRecord("BaseEntity", Lazy = true )]
class BaseClass {}

[ActiveRecord("DerivedEntity", Lazy = true )]
class DerivedClass : BaseClass {}
Run Code Online (Sandbox Code Playgroud)

在DB BaseEntity和DerivedEntity中,1 = 1

我创造:

BaseClass myClass = New DerivedClass();
Run Code Online (Sandbox Code Playgroud)

问题:

当我试着问

myClass is DerivedClass
Run Code Online (Sandbox Code Playgroud)

我得到"假",因为myClass不是DerivedClass而是BaseClassProxy.

没有延迟加载,NHibernate不会创建代理对象,我没有这个问题.

当我尝试将myClass转换为DerivedClass时,我得到了这个错误(显然),因为我尝试将BaseClassProxy对象强制转换为DerivedClass.

Unable to cast object of type 'Castle.Proxies.BaseClassProxy' to type 'DerivedClass'.
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 如何获取实际分配的对象类型以将其与DerivedClass进行比较?

  2. 是否可以转换BaseClassProxy对象以获取DerivedClass的实例?

感谢您的答复.

c# nhibernate casting lazy-loading proxy-classes

4
推荐指数
1
解决办法
2159
查看次数