小编Vas*_*sea的帖子

为什么在构建NHibernate会话工厂时会获得"为mutable配置的只读缓存"?

我设置了一个简单的模型:具有多个图像的文档实体.图像保存在另一个数据库中,并且它们是从其他遗留应用程序更新的,因此我的应用程序只具有只读访问权限.我设置了一个synonim,以便我可以将另一台服务器上的images表用作本地表.我的映射如下:

<class name="Image" mutable="false" table="ImageExternal">
    <cache region="images" usage="read-only" />
    <id name="Id">
      <generator class="assigned" />
    </id>   
    <property name="Name" update="false" />
    <!-- other properties -->
</class>
<class name="Document" table="Document">    
    <id name="Id">
       <generator class="guid.comb" />
    </id>
    <!-- other properties -->
    <set name="Images" mutable="false">
      <cache region="images" usage="read-only" />
      <key column="some_guid_column" />      
      <one-to-many class="Image" />
    </set>
</class>
Run Code Online (Sandbox Code Playgroud)

图像类本身是可变的,但我可以通过将访问策略更改为受保护字段来使其不可变.我在Image映射上设置了mutable ="false",它的所有属性都有update ="false",在父关系中设置的Images也用mutable ="false"标记.但是,在构建会话工厂时,我得到"为mutable:images配置的只读缓存"警告,因为缓存使用是"只读".

nhibernate nhibernate-mapping

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

DateTime和ASP.NET MVC 3模型绑定的全球化问题

我的应用程序在ro-RO文化设置下运行,在web.config全球化部分中配置.如果我发出一个POST请求

POST /myapp/index
date=03-12-2010&value=something
Run Code Online (Sandbox Code Playgroud)

模型绑定将此映射到正确的日期值"2010年12月3日",因为ro-RO文化的默认日期时间格式为dd-MM-yyyy.如果我将请求方法更改为GET传递相同的数据,我的操作中的日期值将变为"2010年3月12日"(MM-dd-yyyy日期时间格式)

GET /myapp/index?date=03-12-2010&value=something

$.getJSON('/Home/Index', $('form').serialize(), function(d) {
            // ...
});
$.post('/Home/Index', $('form').serialize(), function(d) {
            // ...
}, 'json');
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,"getJson"和"post"必须返回相同的结果,但由于日期时间差异,我得到不同的结果.

如何为GET请求启用相同的解析格式?

我知道我可以使用更通用的格式,例如yyyy-MM-dd作为日期,但我只是好奇为什么会发生这种情况?

globalization asp.net-mvc model-binding asp.net-mvc-3

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

在NHibernate中,如何找到持久POCO类的id属性的名称,知道它的类型?

如何使用NHibernate类元数据获取实体类的id(主键)属性的名称?假设我有以下类,我可以找到ID的属性名称和类型typeof(TEntity)吗?

public abstract class Repository<TKey, TEntity> : IRepository<TKey, TEntity>
    where TEntity : class
{
    private static string PrimaryKeyName;
    // ...

    protected ISession Session { ... }
}
Run Code Online (Sandbox Code Playgroud)

通常,属性的名称是Id,但在少数情况下,它是不同的.我正在使用.hbm.xml映射.是否

Session.SessionFactory.GetClassMetadata(typeof(TEntity)).IdentifierPropertyName
Run Code Online (Sandbox Code Playgroud)

提供这些信息?

nhibernate nhibernate-mapping

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