我有这个问题:当我尝试实现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) 我使用角度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) 我有这个泊坞窗文件:
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 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) 我这样做:
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秒.不知道为什么.
我为这段代码得到了一个无限循环:
$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) 我需要访问 Asp.Net Core SignalR Hub 中的不记名令牌原始字符串(令牌本身)。
我需要它,因为当我对需要来自我的集线器的令牌的其他微服务进行 HttpClient 调用时,我必须使用它。
我尝试创建具有 Token 属性的按请求服务,但 SignalR 不使用按请求模式。仅当客户端连接时才会发送令牌,但并非总是如此。
无论如何,我需要访问不记名令牌,但不知道如何。请帮忙。
jwt bearer-token microservices asp.net-core asp.net-core-signalr
angularjs ×2
asp.net-core ×2
c# ×2
asp.net ×1
bearer-token ×1
criteria-api ×1
docker ×1
dockerfile ×1
jwt ×1
lamar ×1
nhibernate ×1
node.js ×1
page-refresh ×1
task ×1