小编zon*_*lut的帖子

将IEnumerator转换为通用IEnumerator的最佳方法是什么?

我正在为C#.NET 3.5中的自定义ConfigurationHandler编写自定义ConfigurationElementCollection,并且我希望将IEnumerator公开为通用IEnumerator.

实现这一目标的最佳方法是什么?

我目前正在使用该代码:

public new IEnumerator<GenericObject> GetEnumerator()
{
  var list = new List();
  var baseEnum = base.GetEnumerator();
  while(baseEnum.MoveNext())
  {
    var obj = baseEnum.Current as GenericObject;
    if (obj != null)
      list.Add(obj);
  }
  return list.GetEnumerator();
}

干杯

c# ienumerator enumeration

31
推荐指数
1
解决办法
3万
查看次数

使用NHibernate插入带有复合键的记录

我正在使用使用复合键的旧数据库.我正在尝试使用NHibernate将新记录插入数据库.NHibernate指定我必须手动创建Id,但是当我尝试使用此id插入时,我收到消息:

System.Data.SqlClient.SqlException: Cannot insert explicit value for identity column in table 'tablename' when IDENTITY_INSERT is set to OFF.
Run Code Online (Sandbox Code Playgroud)

我无法触及任何数据库设置,因为它们由美国总部管理.

我发现我可以通过以下方式进行数据库插入:

insert into tablename (tablename_country_id, /*extra fields here*/) values (16, /*extra values here*/)
Run Code Online (Sandbox Code Playgroud)

并且tablename_id列自动递增.

是否可以编写某种处理程序,允许我ID使用该CountryId集创建一个对象并让它自动增加该Id属性.

干杯.


示例代码:

表定义:

CREATE TABLE [dbo].[tablename](
    [tablename_country_id] [int] NOT NULL,
    [tablename_id] [int] IDENTITY(1,1) NOT NULL,

    -- more fields here

    CONSTRAINT [pk_tablename] PRIMARY KEY
    (
        [tablename_country_id] ASC,
        [tablename_id] ASC
    )
)
Run Code Online (Sandbox Code Playgroud)

类文件:

public class ModelObject
{
    public ID { …
Run Code Online (Sandbox Code Playgroud)

.net c# nhibernate composite-id

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

标签 统计

c# ×2

.net ×1

composite-id ×1

enumeration ×1

ienumerator ×1

nhibernate ×1