Попытка иметь модель с ключом, который является строкой, но в базе данных будет представлен как byte [].Сопоставление свойства типа строки с байтом [] в базе данных в EF Code First
Есть ли способ, я могу это сделать?
Попытка иметь модель с ключом, который является строкой, но в базе данных будет представлен как byte [].Сопоставление свойства типа строки с байтом [] в базе данных в EF Code First
Есть ли способ, я могу это сделать?
Прямого перевода из строки в массив байтов нет. Вы должны указать, в какой кодировке массив байтов будет представлять строку.
Вы можете добавить не-карту свойства обертки (TheStringValue
ниже), который использует определенную кодировку для отображения строки в байты и наоборот:
public class MyEntity
{
public byte[] StringBytes { get; set; }
[NotMapped]
public string TheStringValue
{
get
{
return Encoding.UTF8.GetString(StringBytes);
}
set
{
StringBytes = Encoding.UTF8.GetBytes(value);
}
}
}
'[NotMapped]' - NotMapped атрибут может быть применен к свойства класса. Стандартное соглашение Code-First создает столбец для всех свойств, которые включают в себя геттеры и сеттеры. Атрибут NotMapped переопределяет это соглашение по умолчанию. Вы можете применить атрибут NotMapped к свойству, которое вы НЕ хотите создавать столбец в таблице базы данных. [подробнее] (http://www.entityframeworktutorial.net/code-first/notmapped-dataannotations-attribute-in-code-first.aspx) –