私はこのコードを持っている:これを初期化する方法はIObjectSetのコードですか?
public interface IEntityBase<T> where T : struct, IComparable
{
T? ID { get; set; }
}
そして、
すぎpublic class EntityBase<T> : IEntityBase<T> where T : struct, IComparable
{
private T? _id;
protected EntityBase(T? key)
{
this._id = key;
}
public virtual T? Id
{
get { return this._id; }
set { this._id = value; }
}
public override bool Equals(object entity)
{
if (entity == null || !(entity is EntityBase<T>))
{
return false;
}
return (this == (EntityBase<T>)entity);
}
public static bool operator ==(EntityBase<T> left, EntityBase<T> right)
{
if ((object)left == null && (object)right == null)
{
return true;
}
if ((object)left == null || (object)right == null)
{
return false;
}
if (left.Id.Value.CompareTo(right.Id.Value) != 0)
{
return false;
}
return true;
}
public static bool operator !=(EntityBase<T> left, EntityBase<T> right)
{
return (!(left == right));
}
public override int GetHashCode()
{
return this._id.HasValue ? this._id.Value.GetHashCode() : 0;
}
}
、あるMyContextコード:
が、objectSetと機能で、外観のエラーメッセージ!
正しい構文は何ですか。
public class MyContext : ObjectContext
{
private IObjectSet<Page> _pageSet;
public MyContext(EntityConnection connection)
: base(connection)
{
}
public IObjectSet<Page> PageSet
{
get
{
return _pageSet ?? (_pageSet = ObjectSet<Page>());
}
}
public virtual IObjectSet<TEntity> ObjectSet<TEntity>() where TEntity : struct, EntityBase<TEntity>, IComparable
{
return CreateObjectSet<TEntity>();
}
}
クラスのページ:
public class Page : EntityBase<long>
{
public Page(long? key)
: base(key)
{
}
public virtual string Title { get; set; }
public virtual string Body { get; set; }
public virtual Page Parent { get; set; }
}
感謝!
どのようなエラーメッセージが表示されますか? –
MyContext.cs特に、ObjectSet関数では、このメッセージ "EntityBase":制約クラスと 'class'または 'struct'制約の両方を指定できません。 –
Abdalla