小编Luk*_*uka的帖子

使用NHibernate进行复杂查询

我有这个问题:当我尝试实现Ayende的复杂搜索时,请访问:http: //ayende.com/Blog/archive/2006/12/07/ComplexSearchingQueryingWithNHibernate.aspx ,对象图:人:M:1地址:M :1街道:M:1地点:M:1国家我收到以下错误:NHibernate.QueryException:无法在没有投影的条件下使用子查询.我这样做:

public List<Person> Find() 
{ 
    DetachedCriteria query = DetachedCriteria.For<Person>(); 
    AddAddressQuery(query); 
    return personRepository.Find(query);
} 

private void AddAddressQuery(DetachedCriteria query) 
{ 
     DetachedCriteria addressQuery = null; 
     if (!String.IsNullOrEmpty(SearchParams.HouseNumer)) 
     { 
         addresaQuery = DetachedCriteria.For<Address>(); 
         addresaQuery.Add(Restrictions.Eq("HouseNumer", 
SearchParams.HouseNumer)); 
     } 
     this.AddStreetQuery(ref addressQuery); 
     if (addressQuery != null) 
     { 
         query.CreateCriteria("Address1", 
"address1").Add(Subqueries.Exists(addressQuery)); 
     } 
} 

private void AddStreetQuery(ref DetachedCriteria query) 
{ 
    DetachedCriteria streetQuery = null; 
    if (this.SearchParams.StreetId.HasValue) 
    { 
        streetQuery = DetachedCriteria.For<Street>(); 
        streetQuery .Add( Restrictions.Eq("Id", 
this.SearchParams.StreetId.Value)); 
    } 
    if (streetQuery != null) 
    { 
        query = query ?? Query.CreateCriteria("Address1"); 
        query.CreateCriteria("Street", 
"street").Add(Subqueries.Exists(streetQuery …
Run Code Online (Sandbox Code Playgroud)

nhibernate criteria-api

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

如何在浏览器刷新时保留ui-router参数

我使用角度ui-router来管理我的SPA的状态.我有这条路线:

    .state('index.administration.security.roleEdit', {
                url: '/roleEdit',
                templateUrl: 'app/administration/security/role/roleEdit.html',
                controller: 'roleEditCtrl',
                controllerAs: 'roleEditCtrl',
                params: { data: null },
                resolve: {
                    role: function ($stateParams) {
                        return angular.fromJson($stateParams.data);
                    },
                    modules: function (securityService) {
                        return securityService.getAllModules();
                    }                       
                }
            })
Run Code Online (Sandbox Code Playgroud)

另外,我将'data'参数作为json对象传递给状态.现在当我第一次加载这个状态时,一切都很好.但是当我执行浏览器刷新(F5键)时,$ stateParams.data在状态的resolve函数中为null.

我怎么解决这个问题?我看到了这些可能的解决方案:1.以某种方式坚持参数2.覆盖浏览器刷新(不知道如何)停止浏览器刷新应用程序.3.刷新goto其他兄弟状态.

请帮忙

更新 好的,我设置这样的数据:

vm.editRole = function(roleId){
     var role = dataService.getRoleById(roleId).then(function(result){
           $state.go('roleEdit', {data:angular.toJson(result)});
           });
}
Run Code Online (Sandbox Code Playgroud)

更新2 roleEdit控制器如下所示:

(function(){
    angular.module('app.administration').controller('roleEdit', 
    ['role','modules', '$scope', 'securityService', '$state', roleEditCtrl]);

    function roleEditCtrl('role', 'modules',$scope, securityService, $state){
        var vm = this;
        vm.roles = roles;
        vm.originalRole = angular.copy(role);
        vm.modules=modules;
        vm.saveChanges = _saveChanges;
        vm.cancel …
Run Code Online (Sandbox Code Playgroud)

page-refresh angularjs angular-ui-router

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

Docker 从一个容器复制到另一个容器

我有这个泊坞窗文件:

FROM microsoft/aspnetcore:2.0-nanoserver-1709 AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0-nanoserver-1709 AS build
WORKDIR /src
COPY *.sln ./
COPY MyApp.Api/MyApp.Api.csproj MyApp.Api/
RUN dotnet restore
COPY . .
WORKDIR /src/MyApp.Api
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /app

FROM base AS final
copy --from=build["C:\Program Files\nodejs", "C:\nodejs"]
RUN SETX PATH "%PATH%;C:\nodejs"
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyApp.Api.dll"]
Run Code Online (Sandbox Code Playgroud)

我想将build 上的 nodejs 从 c:\Program Files\nodejs复制到Final 上的 C:\nodejs。但是当我构建它时,我收到此错误: …

asp.net node.js docker dockerfile docker-compose

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

如何将 Lamar 2 与 ASP.NET Core 3 预览版结合使用?

我使用 ASP.NET Core 3 配置了 Lamar,但出现错误

System.InvalidCastException: 'Unable to cast object of type 'Microsoft.Extensions.DependencyInjection.ServiceCollection' to type 'Lamar.ServiceRegistry'.'
Run Code Online (Sandbox Code Playgroud)

我在Program课堂上的配置:

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseLamar();
                    webBuilder.UseStartup<Startup>();
                });
    }
Run Code Online (Sandbox Code Playgroud)

Startup班级:

public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        //public void ConfigureServices(IServiceCollection services)
        //{
        //    services.Configure<CookiePolicyOptions>(options => …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core lamar

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

为什么C#Parallel.Invoke很慢?

我这样做:

    private static void Main(string[] args)
    {
        var dict1 = new Dictionary<int, string>();
        var dict2 = new Dictionary<int, string>();
        DateTime t1 = DateTime.Now;
        for (int i = 1; i < 1000000; i++)
        {
            Parallel.Invoke(
                  () => dict1.Add(i, "Test" + i), 
                  () => dict2.Add(i, "Test" + i) );
        }
        TimeSpan t2 = DateTime.Now.Subtract(t1);

        Console.WriteLine(t2.TotalMilliseconds);

        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

因此,做一个100万次的循环并将项目添加到两个不同的词典.问题是需要11秒,这比普通顺序方法(没有任务/线程)多5倍,仅需2秒.不知道为什么.

c# multithreading task task-parallel-library

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

设置urlRouteProvider.otherwise时的角度ui-router无限循环

我为这段代码得到了一个无限循环:

    $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
        var isLoggedIn = (authService.authentication && authService.authentication.isAuth);
        if (isLoggedIn) {
            //if user is logged and tries to access login page, prevent it
            if (toState.name === 'app.login') {
                event.preventDefault();
                return fromState;
            } 
        } else {
            if (toState.name !== 'app.login') {
                event.preventDefault();
                $state.go('app.login');
                return;
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

我也有这套:

function config($stateProvider, $urlRouterProvider, $ocLazyLoadProvider) {
    $urlRouterProvider.otherwise('/main');

    $stateProvider
    .state('app', {
        abstract: true,
        url: '',
        controller: 'mainCtrl',
        controllerAs: 'mainCtrl',
        template:'<div ui-view></div>'      
    })
    .state('app.login', {
        url: '/logn'
        controller: 'loginCtrl',
        controllerAs: …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui-router angularjs-digest

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

如何在 Asp .Net Core SignalR Hub 中获取不记名令牌?

我需要访问 Asp.Net Core SignalR Hub 中的不记名令牌原始字符串(令牌本身)。

我需要它,因为当我对需要来自我的集线器的令牌的其他微服务进行 HttpClient 调用时,我必须使用它。

我尝试创建具有 Token 属性的按请求服务,但 SignalR 不使用按请求模式。仅当客户端连接时才会发送令牌,但并非总是如此。

无论如何,我需要访问不记名令牌,但不知道如何。请帮忙。

jwt bearer-token microservices asp.net-core asp.net-core-signalr

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