小编dst*_*str的帖子

"或"等效于Linq Where()lambda表达式

在Linq中是否有一个方法可用于构建SQL字符串,如"... where(a = 1)OR(a = 2)"?

.net linq where-clause

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

获取没有构造函数注入的服务实例

@Injectable在bootstrap中定义了一个服务.我想在不使用构造函数注入的情况下获取服务的实例.我试过使用ReflectiveInjector.resolveAndCreate但似乎创建了一个新实例.

我试图做的原因是我有一个由许多组件派生的基本组件.现在我需要访问服务,但我不想将它添加到ctor,因为我不想在所有衍生组件上注入服务.

TLDR:我需要一个 ServiceLocator.GetInstance<T>()

更新: RC5 +的更新代码:存储用于组件的进样器实例

angular2-injection angular2-di angular

59
推荐指数
4
解决办法
5万
查看次数

在表达式树中使用可空类型

我有一个扩展方法,使用字符串值动态过滤Linq到实体结果.它工作正常,直到我用它来过滤可空列.这是我的代码:

public static IOrderedQueryable<T> OrderingHelperWhere<T>(this IQueryable<T> source, string columnName, object value)
{
    ParameterExpression table = Expression.Parameter(typeof(T), "");
    Expression column = Expression.PropertyOrField(table, columnName);
    Expression where = Expression.GreaterThanOrEqual(column, Expression.Constant(value));
    Expression lambda = Expression.Lambda(where, new ParameterExpression[] { table });

    Type[] exprArgTypes = { source.ElementType };

    MethodCallExpression methodCall = Expression.Call(typeof(Queryable), 
                                                      "Where", 
                                                      exprArgTypes, 
                                                      source.Expression, 
                                                      lambda);

    return (IOrderedQueryable<T>)source.Provider.CreateQuery<T>(methodCall);
}
Run Code Online (Sandbox Code Playgroud)

这是我如何使用它:

var results = (from row in ctx.MyTable select row)
              .OrderingHelperWhere("userId", 5);//userId is nullable column
Run Code Online (Sandbox Code Playgroud)

这是我在将可用于可空表列时使用的异常:

没有为类型'System.Nullable`1 [System.Int32]'和'System.Int32'定义二元运算符GreaterThanOrEqual

我无法理解这一点.我该怎么办?

c# linq lambda entity-framework expression-trees

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

如何打开/运行YML撰写文件?

如何在计算机上打开/运行YML撰写文件?我已经安装了Docker for Windows和Docker工具,但无法弄清楚如何.

docker docker-compose docker-for-windows

25
推荐指数
2
解决办法
5万
查看次数

存储注入器实例以用于组件

在RC5之前我使用appref injector作为服务定位器,如下所示:

Startup.ts

bootstrap(...)
.then((appRef: any) => {
    ServiceLocator.injector = appRef.injector;
});
Run Code Online (Sandbox Code Playgroud)

ServiceLocator.ts

export class ServiceLocator {
    static injector: Injector;
}
Run Code Online (Sandbox Code Playgroud)

组件:

let myServiceInstance = <MyService>ServiceLocator.injector.get(MyService)
Run Code Online (Sandbox Code Playgroud)

现在在bootstrapModule()中执行相同操作.然后()不起作用,因为组件似乎在promise之前开始执行.

有没有办法在组件加载之前存储喷油器实例?

我不想因为我使用其中的许多组件衍生,我宁可不注射器注入到所有这些基本成分的注射器使用构造器注入.

angular

23
推荐指数
2
解决办法
9587
查看次数

打开解决方案/项目时自动获取最新版本

当您打开解决方案,项目或网站时,是否有办法强制获取最新版本?在TFS 2008上使用VS.NET 2008和2010.

tfs tfs2008

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

如何更改XmlReader的字符编码

我有一个简单的XmlReader:

XmlReader r = XmlReader.Create(fileName);

while (r.Read())
{
    Console.WriteLine(r.Value);
}
Run Code Online (Sandbox Code Playgroud)

问题是,Xml文件中包含ISO-8859-9字符,这使得XmlReader抛出" Invalid character in the given encoding."异常.我可以<?xml version="1.0" encoding="ISO-8859-9" ?>在开头添加行来解决这个问题,但是我想以另一种方式解决这个问题,以防我无法修改源文件.如何更改XmlReader的编码?

.net c# xml encoding character-encoding

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

使用基类装饰器扩展组件装饰器

我有几个组件装饰器声明,我在每个组件上重复,例如:

@Component({
    moduleId: module.id,
    directives: [BootstrapInputDirective]
})
Run Code Online (Sandbox Code Playgroud)

如何将这些声明应用于我的所有组件?我试图用这个装饰器创建一个基类,并用它扩展其他类,但基类装饰似乎不适用于派生类.

typescript angular

19
推荐指数
4
解决办法
2万
查看次数

使用Linq To SQL进行多次SubmitChanges和事务回滚

我正在使用TransactionScope将Linq中的数据提交给SQL.我的问题是,如果我在同一范围内使用多个SubmitChanges,是否会在出现错误时回滚所有范围,或者只是在最后一次SubmitChanges之后进行更改?例如:

using (TransactionScope trans = new TransactionScope())
{
    using (dbDataContext db = new dbDataContext())
    {
        try
        {
            //do some insert
            db.SubmitChanges();

            //do some updates
            db.SubmitChanges();

            trans.Complete();
        }
        catch(Exception ex){}
    }
}
Run Code Online (Sandbox Code Playgroud)

如果更新SubmitChanges抛出异常,插入SubmitChanges也会回滚吗?

.net transactionscope linq-to-sql

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

更改实体可访问性

我想在内部建立一个实体.我已将实体,其标量属性和导航属性更改为内部.我尝试构建它时遇到此错误:

错误6036:EntityType"文件"具有"内部"可访问性,而EntitySet"文件"具有"公共"可访问性的get属性.EntitySet的get属性的访问权限不得低于包含EntityType访问权限的访问权限.

我无法编辑designer.cs,因为它没有生成此错误.我检查了edmx文件,但没有任何公共值与"文件"或"文件"相关联.我该怎么办?

.net entity-framework

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