小编fri*_*ley的帖子

ASP.NET MVC:ValidationAttribute和本地化的ErrorMessage

我有ValidationAttribute像:

    public class Username : ValidationAttribute
 {
  public override bool IsValid(object value)
  {
   if (value == null)
    return false;

   return RegExp.Validate(RegExpLib.Username,value.ToString());
  }
 }
Run Code Online (Sandbox Code Playgroud)

..并使用它像这样:

    public class AccountSignIn
 {
  [Username(ErrorMessageResourceName ="txtUsername",ErrorMessageResourceType=typeof(SignIn))]
  public string Username { get; set; }

  public string Password { get; set; }

  public bool RememberMe { get; set; }

  public string ReturnUrl { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

SignIn是App_GlobalResources的资源文件,"txtUsername" - 是资源文件中的字符串名称.

问题:未显示错误消息.

问题:如果网站上的语言很少,如何设置错误消息.

另一个信息:

我可以SignIn.txtUsername从Views或项目中的任何文件访问.来自控制器

ModelState.AddModelError("Username", Resources.SignIn.txtUsername);
Run Code Online (Sandbox Code Playgroud)

工作正常..我可以在ValidationAttribute内部分配ErrorMessage,但在第二次验证后得到错误尝试...如果我这样检查 -

   if(ErrorMessage != Resources.SignIn.txtUsername)
       ErrorMessage = Resources.SignIn.txtUsername; 
Run Code Online (Sandbox Code Playgroud)

切换到另一种语言后出错 - …

asp.net-mvc

7
推荐指数
2
解决办法
9967
查看次数

Linq to NHibernate多个OrderBy调用

我在Linq to NHibernate查询中通过多个字段进行排序时遇到问题.有没有人知道什么可能是错的或者是否有解决方法?

码:

IQueryable<AgendaItem> items = _agendaRepository.GetAgendaItems(location)
   .Where(item => item.Minutes.Contains(query) || item.Description.Contains(query));

int total = items.Count();

var results = items
   .OrderBy(item => item.Agenda.Date)
   .ThenBy(item => item.OutcomeType)
   .ThenBy(item => item.OutcomeNumber)
   .Skip((page - 1)*pageSize)
   .Take(pageSize)
   .ToArray();

return new SearchResult(query, total, results);
Run Code Online (Sandbox Code Playgroud)

我尝试用多个OrderBy调用替换ThenBy.结果相同.如果我注释掉两个ThenBy调用,该方法效果很好.

我收到的错误:

    [SqlException (0x80131904): Invalid column name '__hibernate_sort_expr_0____hibernate_sort_expr_1__'.
    Invalid column name '__hibernate_sort_expr_0____hibernate_sort_expr_1__'.]
       System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1948826
       System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4844747
       System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
       System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392

    [ADOException: could not execute …

linq nhibernate linq-to-nhibernate

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

使用流利的nhibernate进行私有属性映射

我正在获取异常映射私有属性.这是情况:我在Entity.cs中有这个:privat int m_Inactive;

在EntityMap.cs我有:

Map(x => Reveal.Property<Entity>("m_Inactive")).ColumnName.("INACTIVE"); 
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

System.Reflection.TargetInvocationException: Exception has been thrown 
by 
the target of an invocation. --->  System.ArgumentException: Not a member access 
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

谢谢.

fluent fluent-nhibernate

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

打开和关闭Hibernate会话

这就是我如何获得Hibernate Session并创建查询.

HSession.getSession().createQuery("query here").executeUpdate();
Run Code Online (Sandbox Code Playgroud)

Critaria cr=HSession.getSession().createCritaria(..).. ;
Run Code Online (Sandbox Code Playgroud)

HSession是我的Session工厂所在的位置,getSession()方法返回一个新会话

(getSessionFactory().openSession();)
Run Code Online (Sandbox Code Playgroud)

我想知道是否

  • 在呼叫之后cr.list();会话还活着吗?
  • 如果活着,获得此标准或执行查询方式并不好?和
  • 创建会话为

    Session s = HSession.getSession();
    s.createCriteria ...

    是使用会话并使用它关闭它的方法s.close();吗?

java hibernate

6
推荐指数
2
解决办法
2847
查看次数

使用Fluent nhibernate自动进行继承

我有这种情况:

public namespace ANamespace
{
    public abstract class ABase:IABase
    {
        //properties
    }

    public abstract class A : ABase
    {
        //properties
    }

    public class A1 : A
    {
        //properties
    }

    public class A2 : A
    {
        //properties
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我使用此映射代码:

AutoMap
   .AssemblyOf<ABase>()
   .Where(e => e.Namespace == "ANamespace")
   .IncludeBase<A>().IgnoreBase<ABase>();
Run Code Online (Sandbox Code Playgroud)

仅创建一个表(具有ABase和A属性).如果我删除IncludeBase(),则创建A1和A2(包含所有属性).

AutoMap
   .AssemblyOf<ABase>()
   .Where(e => e.Namespace == "ANamespace")
   .IgnoreBase<ABase>();
Run Code Online (Sandbox Code Playgroud)

如何编写映射以在我的数据库中为类A(具有所有A和ABase属性),A1和A2(具有特定属性)而不是ABase类创建表?

c# nhibernate inheritance automapping

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

如何使用NServiceBus安排每天运行的任务

是否有使用NServiceBus安排任务的优雅方式.我在搜索网络找到了一种方法.NServiceBus是否提供用于调度的内部API.

nservicebus job-scheduling

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

什么是hibernate中的上下文会话?

  1. 什么是Hibernate中的上下文会话?
  2. 当我在使用上下文会话实现接口之间创建和关闭会话时?

hibernate

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

冬眠,懒惰还是不懒惰?

我有entity A,它有多对多的关系entity B.

所以表格布局是: A, AB(mapping table), B

获取实体A的对象:我调用A.getById()哪个getHibernateTemplate().get(A.class, id) 使用spring和hibernate.

问题是,有时随之而来的代码将只需要一个,有时随后的代码将继续访问相关的B的,所以我们想使用延迟加载在某些情况下,并渴望在其他一些情况下.但问题是所有数据库访问都是通过同一个单独提供的ADao.java,因此只有一种方法getById().

我应该创建两个版本的方法getById()吗?

但是对于更复杂的情况,如果A也通过多对多连接到C,那么可能存在lazy-loading-C和eager-loading-C的getById()变体,因此所需的变体快速呈指数增长.

你对这个选择有什么看法?

谢谢

design-patterns hibernate lazy-evaluation

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

通过删除 IDP cookie 在 Shibboleth 中使用全局注销

我有一个使用 Shibboleth 进行身份验证的产品。

当用户在网站上发起注销时

  1. Web 服务器向 Shibboleth SP 发送注销请求。
  2. SP 在收到请求后删除 cookie。
  3. 但是,如果用户返回网站,则不会提示登录页面

对于下面显示的配置,我使用此处给出的 Shibboleth 服务提供商 https://www.testshib.org/install.html#SP它被配置为使用 testshib.org IdP 详细信息可以在此处阅读

Shibboleth 注销

我相信 IdP 不会删除其会话 cookie 并在步骤 3 中重新登录用户。

有关 IdP Cookie 的更多信息:

wiki 源指出 IdP 使用两个 cookie,_idp_authn_lc_key这些 cookie 在身份验证后将被删除。第二个是会话 cookie '_idp_session',它指出:

用户通过身份验证后,他们将与 IdP 建立长期会话,该会话由名为 _idp_session 的 cookie 进行跟踪。此 cookie 仅包含识别用户 IdP 会话所需的信息。该 cookie 被创建为“会话”cookie,并且当浏览器选择删除此类 cookie 时(通常是在浏览器关闭时),该 cookie 将被删除。

我的问题是

  • 我需要对 SP 进行哪些更改才能请求 IdP 删除相同内容并有效创建GLOBAL LOGOUT

authentication shibboleth

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

使用Sum方法和Nhibernate在集合为空时不会出现异常

我有一个IQueryableNHibernate,我想有一个linq查询来总结一个特定的列,但是,当我的Where方法条件给我一个空的结果我不想得到一个异常,但我不想打一个查询获取所有记录并在内存之后总结,我想要像coalesesql命令一样的样本:

// I get exception when its empty
var query = MyQueryable()
              .Where(x => x.IsDone)
              .Select(x => x.Value)
              .Sum(); 
Run Code Online (Sandbox Code Playgroud)

我必须做这样的事情:

// I get 0, its ok, but ToList(), list all records on memory, 
// I just want to get a single value

var query = MyQueryable()
               .Where(x => x.IsDone)
               .Select(x => x.Value)
               .ToList()
               .Sum(); 
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

谢谢.

c# linq nhibernate sum iqueryable

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