标签: castle-activerecord

DataGridView,BindingList <T>,DataGridViewComboBoxColumn

所以,我有一个DataGridView使用BindingList作为数据源

DataGridView.DataSource = new  BindingList<Car>{...}
Run Code Online (Sandbox Code Playgroud)

哪里

public class Car
{
    public ColorName Color { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

public class ColorName
{
    public int Id {get; set;}
    public string Name{get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我使用Combobox专栏:

DataGridViewComboBoxColumn colorNameDataGridViewTextBoxColumn;
colorNameDataGridViewTextBoxColumn.DataPropertyName = "Color";
colorNameDataGridViewTextBoxColumn.HeaderText = "Color";
colorNameDataGridViewTextBoxColumn.Name = "Color";
colorNameDataGridViewTextBoxColumn.DisplayMember = "Name";
colorNameDataGridViewTextBoxColumn.ValueMember = "Id";
colorNameDataGridViewTextBoxColumn.DataSource = new ColorName[] {...};
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它发挥作用?!现在我得到一个例外,因为我认为它试图将Id转换为ColorName.

我尝试使用空的ValueMember或向ColorName类添加直接强制转换操作符但无法使其工作.

当然我可以在Car类中使用int来表示颜色,但不是很好.

正如您可能猜到的那些类实际上是Castle Project ActiveRecord-s.

欢迎任何想法!

.net castle-activerecord datagridview winforms

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

懒惰加载BelongsTo与Castle Active Record的关系?

我有一个关于城堡AR中的关系的以下映射

[BelongsTo("EVENT_ID", Lazy = FetchWhen.OnInvoke)]
        public EventType PayEvent
        {
            get
            {
                return m_PayEvent;
            }
            set
            {
                m_PayEvent = value;
            }
        }
Run Code Online (Sandbox Code Playgroud)

但即使没有调用属性,也会获取Relation.这里有什么遗漏?我也在使用SessionScope.

nhibernate castle-activerecord lazy-loading

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

Castle ActiveRecord:“ System.Int32”不能转换为“ System.Boolean”类型

我在SqlNamedQuery属性中遇到了一些问题,该属性已添加到Castle的ActiveRecord的较新版本中。我已经这样指定了:

[assembly: SqlNamedQuery(Queries.GetItemName, "EXEC [dbo].[GetItemName] :id")]
Run Code Online (Sandbox Code Playgroud)

除此之外,我在结果映射中有一个属性声明为:

...
[Property(Access = PropertyAccess.AutomaticProperty, NotNull = true)]
public virtual bool IsPrimaryName { get; set; }
...
Run Code Online (Sandbox Code Playgroud)

Nhibernate查询:

IQuery query = Session.GetNamedQuery(Queries.GetItemName);
query.SetParameter("id", 1212, NHibernateUtil.Int64);
query.SetResultTransformer(Transformers.AliasToBean<Mapping>());
Run Code Online (Sandbox Code Playgroud)

执行后,我收到以下异常:

Object of type 'System.Int32' cannot be converted to type 'System.Boolean'.
Run Code Online (Sandbox Code Playgroud)

我还添加了以下web.config条目,但没有成功(可能仅适用于hql查询)。

<add key="query.substitutions" value="true 1, false 0, yes 'Y', no 'N'" />
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是-我该如何解决这个问题?存储过程返回0或1,但我也尝试过使用“ 1”,“ true”,“ TRUE”等。如何解决此问题?或者,也许我应该删除SqlNamedQueries?

更新:堆栈跟踪

[ArgumentException: Object of type 'System.Int32' cannot be converted to type 'System.Boolean'.]
System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast) +4070954 …
Run Code Online (Sandbox Code Playgroud)

sql-server nhibernate castle-activerecord

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

是否可以将List <string>作为活动记录类的属性

是否可以在ActiveRecord类上具有基本类型(如String)的HasMany关系,而无需创建另一个实体(如(TodoListItem))来保存该值.

[ActiveRecord]
public class TodoList
{

  [PrimaryKey]
  public int Id
  {
    get { return _id; }
    set { _id = value; }
  }

  [HasMany(typeof(string)]
  public IList<string> Items
  {
    get { return _items; }
    set { _items= value; }
  }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

c# collections castle-activerecord

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

Castle ActiveRecord是否支持SQL公式?

Castle ActiveRecord是否支持nHibernate支持的SQL公式?

例如,在nHibernate中,我们可以做这样的事情.

<property name="CountOfPosts"
    formula="(select count(*) from Posts where Posts.Id = Id)"/>
Run Code Online (Sandbox Code Playgroud)

Castle Active Record是否支持此功能?

nhibernate castle-activerecord

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

避免NHibernate中实体的第一级缓存?

我有一个外部更新的实体(使用触发器,存储过程).这意味着实体可以在我不知道的情况下在同一个会话中进行更改,并且我需要始终执行数据库命中,并且从不使用第一级缓存中的实体.

这可能是使用NHibernate(或实际上,Castle ActiveRecord)吗?

nhibernate castle-activerecord

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

编译Castle.ActiveRecord以允许部分信任?

我如何构建Castle.Core,Castle.ActiveRecord和NHibernate以允许部分信任?网上有大量的资源显示如何做到这一点,但是我找到的每个网站都说nant build -D:assembly.allow-partially-trusted-callers=true用来构建每个程序集.当我在这里查看Castle.Core 主干时,没有*.build文件.

如何实现这一目标?我使用的是.NET 3.5.这不是Web应用程序.

编辑:我们正在使用NHibernate 2.1.2GA(我相信最新的稳定版本).下面给出的说明的问题是它们看起来像是指从trunk创建Castle.Core和Castle.ActiveRecord.Trunk似乎要求NHibernate 3.0.0与我们的版本不匹配.

几乎所有的调整都是在项目属性下的Security选项卡中完成的.

  • 在"区域您的应用程序将从以下位置安装"标签我选择"(自定义)"
  • 至于应用程序所需的权限,我必须包括SqlClientPermission以及UIPermission.为了消除未来发展的问题,我选择了"授予程序集无限制访问x",其中是所选权限.这是针对上面显示的两个权限完成的.请注意,您选择包含的权限将基于每个应用程序,并且没有两个案例将是相同的.
  • 在"高级..."按钮下,我取消选择了两个选项("使用所选权限集调试此应用程序"和"授予应用程序访问其原始站点").

此外,由于应用程序和SQL Server驻留在不同的域下,我必须设置我的连接字符串以包括数据库服务器域.所以我的原始连接字符串数据源必须从"Data Source = DB_SERVER"转到"Data Source = DB_SERVER.DOMAIN".

最后,我必须设置requirePermission="false"所有配置部分.我的configSections结果是这样的:

  <configSections>
    <section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" requirePermission="false"/>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" requirePermission="false"/>
    <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
    <section name="hibernate-configuration" requirePermission="false" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
  </configSections>
Run Code Online (Sandbox Code Playgroud)

完成所有操作后,我成功地将该应用程序发布到来自不同域的文件共享上,并让用户安装应用程序时没有任何问题.将这些步骤应用于我们的其他应用程序并使用我们新编译的程序集也像魅力一样.

nhibernate castle castle-activerecord partial-trust

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

Castle ActiveRecord/NHibernate - 密码加密或哈希

使用您不希望以明文形式存储在数据库中的密码的正确方法是什么?我在NHibernate/Castle ActiveRecord中有哪些选择?

更新: 我对其他人如何处理NHibernate/Castle ActiveRecord感兴趣.如果NHibernate或Castle ActiveRecord中有任何内置功能.

.net nhibernate castle-activerecord password-storage

0
推荐指数
1
解决办法
2124
查看次数

Castle Active Record的开销是多少?

使用Castle Active Record而不是直接使用nHibernate在性能方面的开销是多少?它重要还是无关紧要?

nhibernate castle-activerecord

0
推荐指数
1
解决办法
202
查看次数

在99%只读的NHibernate Web应用程序中性能不佳

我目前正在调查ASP.NET MVC Web应用程序,据报道该应用程序在负载下性能较差.(但是加载只是每秒几个请求).

我们使用MySQL + NHibernate + Castle ActiveRecord进行映射.NHibernate会话在每个会话开始时打开,并在视图中保持打开状态.

我已经优化了数据访问模式,以避免在可能的情况下选择N + 1问题.

现在我正在考虑的是..在每个请求上打开一个数据库事务并在最后提交.在99%的请求(MVC操作)中,不必将数据写入数据库.

  1. 是否有可能,您是否在早期关闭会话/交易中看到了好处,甚至将会话标记为只读?
  2. 数据库锁定是否会成为瓶颈?如果是这样,是否可以明确地避免至少为只读事务锁定?

nhibernate performance castle-activerecord

-1
推荐指数
1
解决办法
729
查看次数