У меня есть класс, который выглядит так:
[Table("Coupons")]
public class Coupon
{
[Column("VET_ID")]
public string VetId { get; set; }
[Key]
public int CouponId { get; set; }
public string Name { get; set; }
public string ImageName { get; set; }
public string Text { get; set; }
[Column("ImageAlignment")]
public ImgAlignment Alignment { get; set; }
public enum ImgAlignment { TopLeft = 0, TopRight = 1, BottomLeft = 2, BottomRight = 3 };
/* public ImgAlignment Alignment
{
get { return (ImgAlignment) ImageAlignment; }
set
{ ImageAlignment = (int) value; }
}
*/
public string Html { get; set; }
}
В закомментированном бите я попытался использовать свойство enum, сопоставленное с int в БД, не ожидая, что оно будет работать автоматически. Беда в том, этот код:
Coupon newCoupon = new Coupon
{
Text = coupon,
Name = couponName,
VetId = data.VetId,
ImageName = string.Empty,
Alignment = Coupon.ImgAlignment.TopRight,
Html = string.Empty
};
db.Coupons.Add(newCoupon);
db.SaveChanges();
всегда выдает исключение, что столбец 'ImageAlignment' не может быть нулевым. Но объект, который я передаю, имеет значение для этого свойства, я его устанавливаю, свойство Alignment должно соответствовать этому столбцу, верно?