1

以下の1つの更新

EqualityComparer<T>Fluent/NHibernate を使用して永続化しようとしている (試みている) ことから派生した次のクラスがあります。

public class WeeklyGSFEntity : EqualityComparer<WeeklyGSFEntity>
{
    public virtual int IssueNumber { get; set; }
    public virtual int Severity { get; set; }
    public virtual char PainIndex { get; set; }
    public virtual Status Status { get; set; }
    public virtual int Month { get; set; }
    public virtual int Year { get; set; }
    public virtual DateTime DateCreated { get; set; }
    public virtual Region Region { get; set; }
    public virtual DateTime IncidentStart { get; set; }
    public virtual DateTime IncidentEnd { get; set; }
    public virtual int SRCount { get; set; }
    public virtual string AggravatingFactors { get; set; }
    public virtual string AggravatingFactorDescription { get; set; }
    public virtual TimeSpan MTTR
    {
        get
        {
            return (IncidentEnd - IncidentStart);
        }
    }

    public WeeklyGSFEntity()
    {
        Status = Status.New;
    }
    public override int GetHashCode() { ... }

    internal static bool StaticEqual(WeeklyGSFEntity x, WeeklyGSFEntity y) { ... }
    public static bool operator ==(WeeklyGSFEntity x, WeeklyGSFEntity y) { ... }
    public static bool operator !=(WeeklyGSFEntity x, WeeklyGSFEntity y) { ... }
    public override bool Equals(WeeklyGSFEntity x, WeeklyGSFEntity y) { ... }
    public override bool Equals(object obj) { ... }
    public override int GetHashCode(WeeklyGSFEntity obj) { ... }
 }

public enum Status { ... }
public enum Region { ... }

さて、これは先週うまくいきました。エンティティを保存しようとすると、次のメッセージが表示されます。

 The following types may not be used as proxies:
 Core.Models.WeeklyGSFEntity: method IndexOf should be 'public/protected virtual' or 'protected internal virtual'
 Core.Models.WeeklyGSFEntity: method LastIndexOf should be 'public/protected virtual' or 'protected internal virtual'

ご覧のとおり、IndexOf または LastIndexOf メソッドはありません... :) それらをオーバーライドしようとしましたが、そもそもオーバーライドするために存在しません!

何か案は?

最初の更新

そのため、IL を掘り下げましたが、メソッドIndexOfまたはの兆候はありませんLastIndexOf。さて、これがすべて起こる前に、WeeklyGSFEntities のコレクションを持つ競合に関する新しいクラスを作成しましたこのコレクションにはメソッドが含まIndexOfLastIndexOfますが、マッピングとクラスの両方をプロジェクトから除外しました...

4

1 に答える 1

0

EqualityComparer<WeeklyGSFEntity>さて、私が実装したものから派生する代わりにIEqualityComparer<WeeklyGSFEntity>。問題は消えました...

于 2013-02-01T08:54:56.607 に答える