하나의 옵션은 int
ARGB 색상의 버전을 가지고 여기에서
protected void override OnModelCreating(ModelBuilder builder)
{
var colorTable = builder.Entity<ColorData>();
colorTable.HasKey(x => x.Id).HasColumnName("COLOR_ID");
colorTable.Property(x => x.Argb).HasColumnName("COLOR_ARGB");
colorTable.Ignore(x=>x.Color);
colorTable.ToTable("COLOR_DATA");
}
당신 이제 모든 색상의 정적 메소드에서 데이터를 저장할 수 있습니다.
ColorData data = new ColorData();
data.Color = Color.Black;
data.Color = Color.FromName("Black");
data.Color = Color.FromArgb(0xFF000000);
data.Color = Color.FromArgb(255, 0, 0, 0);
주석에서 선택한 한 가지 대안은 XML로 직렬화하는 것입니다.
위의 코드는 SQL Server에 고유하고 효율적인 데이터 형식을 사용하며 쉽게 유지 관리 할 수 있으므로 정수를 사용합니다.
XML 버전은 훨씬 더 많은 공간을 차지하며 유지 관리가 쉽지 않으며 특정 색상 검색에 복잡성을 더합니다. 확장 된 System.Drawing.Color
유형은 다음과 같습니다.
<Color>
<A>123</A>
<R>45</R>
<G>67</G>
<B>89</B>
<ScA>0.482352942</ScA>
<ScR>0.0262412224</ScR>
<ScG>0.0561284944</ScG>
<ScB>0.09989873</ScB>
</Color>
파란색을 쉽게 검색 할 수있는 것은 어느 것입니까? int
유형에 대해
이는 다음과 같습니다 xml 유형의 경우
SELECT COUNT(1) FROM Customer cust
INNER JOIN Color col
ON cust.FavouriteColorId = color.Id
WHERE col.Argb = 0xFF0000FF
:
SELECT COUNT(1) FROM Customer cust
INNER JOIN Color col
ON cust.FavouriteColorId = color.Id
WHERE col.ArgbXml.value('/Color/A') = N'255'
AND col.ArgbXml.value('/Color/R') = N'0'
AND col.ArgbXml.value('/Color/G') = N'0'
AND col.ArgbXml.value('/Color/B') = N'255'
감사합니다.하지만 Color.FromName ("name")을 사용하는 것이 좋습니다. 색상을 유형으로 설정하는 방법이 없습니다. 왜냐하면 나는 더 많은 차트 유형을 원한다. –
@MihaiBratulescu 어떻게'Color'를 이름으로 변환 할 것을 제안합니까? – Aron
@Aron'Colort.FromsString (myString)'과'Color.ToString()'someting this –