Поля XML с использованием Entity Framework Code
Я использую Entity Framework с моделью Code First (проект для домашних животных, и мне нравится редактировать простые классы и обновлять мою схему автоматически). У меня есть класс, как следует:
[Table("Polygons")]
public class Polygon
{
public int PolygonId { get; set; }
public String Texture { get; set; }
public virtual ICollection<Point> Points { get; set; }
}
[Table("Points")]
public class Point
{
public int PolygonId { get; set; }
public double X { get; set; }
public double Y { get; set; }
}
Для меня полезно хранить полигоны в базе данных и иметь возможность запрашивать их текстуру. С другой стороны, если я сохраняю полигон с 5000 точками в базе данных, то для выполнения такого количества операций вставки требуется вечность, и, честно говоря, я никогда не собираюсь запрашивать точки, кроме как для извлечения отдельного многоугольника.
Я хотел бы избавиться от «PolygonId» в классе «Point», избавиться от таблицы «Points» и сделать так, чтобы таблица «Polygon» выглядела примерно так
PolygonId int PK
Texture varchar(255)
Points XML
А затем пусть точки просто сериализуются в строку, которая сохраняется непосредственно в таблицу, но не сериализуется обратно в массив точек. Есть ли способ заставить EF сделать это или написать собственный сериализатор / десериализатор для поля, так что, по крайней мере, он кажется автоматическим при использовании по всей базе кода?
Спасибо,
Дэн