Я пытаюсь добавить функцию агрегирования в SQL Server 2005 через C #.Но при развертывании проекта происходит сбой со следующей ошибкой:
. Поставщик данных SqlClient .Net: сообщение 6222, уровень 16, состояние 1, строка 1 Тип «AggregationTest.CountNonintersectingIntervals» помечается для собственной сериализации, но поле "интервалы" типа "AggregationTest.CountNonintersectingIntervals" недопустимо для собственной сериализации
Вот код, который я использую:
[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedType(Format.Native)]
public struct Interval : INullable
{
public Interval(int beginning, int ending) : this()
{
this.beginning = beginning;
this.ending = ending;
}
public override string ToString()
{
return "(" + beginning + ", " + ending + ")";
}
public bool IsNull { get { return m_Null; } }
public static Interval Null { get { /*Some code*/ } }
public static Interval Parse(SqlString s)
{
/*Some code*/
}
public int beginning;
public int ending;
private bool m_Null;
}
[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedAggregate(Format.Native)]
public struct CountNonintersectingIntervals
{
public void Init()
{
intervals = new List<Interval>();
}
public void Accumulate(Interval interval)
{
intervals.Add(interval);
}
public void Merge(CountNonintersectingIntervals Group)
{
intervals.AddRange(Group.intervals);
}
public SqlInt32 Terminate()
{
// Some complicated calculation using intervals
}
private List<Interval> intervals;
}
Не могли бы вы помочь мнерешить проблему