Nhibernate和WCF IList <>冲突

Che*_*rot 1 wcf fluent-nhibernate

我将使用一些示例代码来演示我的问题......

这是一个实体

public class Channel : EntityBase
{

    [DataMember]
    public virtual IList<LocalChannel> LocalChannels { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

本地频道有一个字符串属性.

这两个类流畅地映射并且具有很多关系.

问题出在wcf服务中.

当我选择一个频道或所有频道.

localChannels列表是固定大小的.(返回的ILIst类型是类型化数组)

我希望我成为一个清单.

Nhibernate不会让我写这个:

public virtual List<LocalChannel> LocalChannels { get; set; }
Run Code Online (Sandbox Code Playgroud)

因为它不能把他的收藏品卖给List

我的代理是用代码编写的,不是用svcutil生成的,所以我不能改变集合类型.

任何解决方案

Eug*_*sky 5

请参阅我的回答" 手动将ClientBase集合类型从Array []更改为List <>

NHibernate投影和DataContract投影必须相同吗?我对NHibernate了解不多,但你可以这样做吗?

public class Channel : EntityBase{

  //For WCF
  [DataMember(Name="LocalChannel")]
  private List<LocalChannel> LocalChannelsPrivate {
     get {return new List<LocalChannel>(LocalChannels);}
    set {LocalChannels=value;}
  }

  //For NHibernate
  public virtual IList<LocalChannel> LocalChannels {get; set;}
}
Run Code Online (Sandbox Code Playgroud)