小编Osc*_*ero的帖子

如何更改表达式中参数的类型?

因为我在我的域中使用POCOS,我希望我的存储库能够接收我的POCOS类型的表达式过滤器,并将表达式中的参数更改为我的LINQ表的类型,我的字段具有相同的名称我的成员所以我能够通过分成成员和常量来完成1和2个lambda条件,如果我添加更多条件,这会导致递归解析二进制表达式.

这就是我的结局,是否有一个简单的方法来实现这一目标

var q = from p in 
        db.products.Where(ExpressionBuilder.Create<MyPocoProduct,LinqProduct>(myPocoProductExpression))
Run Code Online (Sandbox Code Playgroud)

我改变它的方式

public class ExpressionBuilder
    {
        public static Expression<Func<TLinq, bool>> Create<TEntity, TLinq>(Expression<Func<TEntity, bool>> predicate)
        {

            try
            {
                //get the predicate body
                var binaryExpr = (BinaryExpression)predicate.Body;

                //holds the resuting Expression
                var expressionResult = default(BinaryExpression);

                // Create the parameter of the Linq table Type 
                ParameterExpression parameter = Expression.Parameter(typeof(TLinq), predicate.Parameters[0].Name);


                //if only one condition was passed
                if (binaryExpr.Left is MemberExpression)
                {
                    expressionResult = CreateExpression(binaryExpr, parameter,binaryExpr.NodeType);

                }
                else if (binaryExpr.Left is BinaryExpression)
                {
                    var predicatesList = …
Run Code Online (Sandbox Code Playgroud)

.net linq lambda expression-trees c#-3.0

6
推荐指数
1
解决办法
2041
查看次数

生成客户端ID的页面生命周期是什么?

我正在以编程方式将Webcontrols添加到用户控件中我还添加了一个javascript事件,将controlID作为参数传递但是clientID是我指定的那个,它不包含asp.net生成的那个

   var txt = new TextBox();
   txt.ID = "MyID"+Number;

   chkBox.Attributes.Add("onClick", "EnableTxtBox('" +txt.ClientID + "');");
Run Code Online (Sandbox Code Playgroud)

我可以通过添加父控件ID来解决此问题

   chkBox.Attributes.Add("onClick", "EnableTxtBox('" + this.ClientID+"_"+txt.ClientID + "');");
Run Code Online (Sandbox Code Playgroud)

生成客户端ID的页面生命周期是什么?

.net c# asp.net page-lifecycle

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

使用依赖注入框架的良好开源项目?

有没有人知道一个开源项目实现Ninject Framework或另一个,我之前没有使用过DI框架,Ninject引起了我的注意,因为你不需要在XML文件中配置你的配置.

在查看已经实现的代码时,我倾向于掌握更多内容.

如果你知道另一个使用不同DI框架的好项目吗?

谢谢,

.net open-source dependency-injection ninject inversion-of-control

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

如何从AAD图API API中的组名获取groupId

可以使用图形api从组名中获取groupId,我试图验证用户是否是azure活动目录中安全组的一部分,但是一次只知道组名,

我认为https://graph.windows.net/mytenantdomain/isMemberOf只支持groupId

.net azure-active-directory

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

重试C#HttpClient不成功的请求和超时

我正在尝试构建重试,HttpClient DelegatingHandler以便将诸如503 Server Unavailable和超时之类的响应视为瞬态故障并自动重试.

我从http://blog.devscrum.net/2014/05/building-a-transient-retry-handler-for-the-net-httpclient/的代码开始,该代码适用于该403 Server Unavailable案例,但不处理超时作为短暂的失败.不过,我喜欢使用Microsoft瞬态故障处理块来处理重试逻辑的一般想法.

这是我目前的代码.它使用自定义Exception子类:

public class HttpRequestExceptionWithStatus : HttpRequestException {
    public HttpRequestExceptionWithStatus(string message) : base(message)
    {
    }
    public HttpRequestExceptionWithStatus(string message, Exception inner) : base(message, inner)
    {
    }
    public HttpStatusCode StatusCode { get; set; }
    public int CurrentRetryCount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这里是瞬态故障检测器类:

public class HttpTransientErrorDetectionStrategy : ITransientErrorDetectionStrategy {
    public bool IsTransient(Exception ex)
    {
        var cex = ex as HttpRequestExceptionWithStatus;
        var isTransient = cex != null …
Run Code Online (Sandbox Code Playgroud)

c# enterprise-library dotnet-httpclient

3
推荐指数
1
解决办法
5068
查看次数

在Vista而不是XP中开发.Net解决方案的优点和缺点

我正在更改我目前运行Win XP的硬件,我想知道我是否也应该将我的操作系统升级到vista.所以我的问题是,在Vista上的VS2008中进行开发时,您发现的最常见的问题/优势是什么.不考虑WPF.我应该保持XP在哪里没有问题?或者什么版本的Vista最适合开发人员需要?

.net windows-vista visual-studio-2008

2
推荐指数
1
解决办法
366
查看次数

这是你在2008年的编程成就?

这是你在2008年的编程成就?今年有哪些技术让您感到惊讶或学习,以及您对2009年编程方面的期望

编辑:更改为Wiki

achievements

0
推荐指数
1
解决办法
384
查看次数

在视图中使用Temp/variable表有什么顾虑?

我的一个朋友问我是否知道为什么他不应该在SQL-Server 2000中的View中包含Temporal或变量表.我只能认为每次访问视图时都会创建一个新表,但我想知道的是还有其他问题.

谢谢,

编辑:这是不可能的

t-sql sql-server temp-tables

0
推荐指数
1
解决办法
1239
查看次数

如何从javascript触发按钮onmouseup处理程序

如何从javascript触发onmouseup处理程序

我有我的按钮

<input id="x" onmouseup="doStuff()">
Run Code Online (Sandbox Code Playgroud)

我想要触发

document.getElementById("x").onmouseup();?????
Run Code Online (Sandbox Code Playgroud)

javascript event-handling

0
推荐指数
2
解决办法
1万
查看次数