我試圖將實體映射到枚舉。當我正在尋找一個來源時,我發現:Automapper - 將實體映射到枚舉
using Should;
public enum OrderStatus : short
{
InProgress = 0,
Complete = 1
}
public enum OrderStatusDto
{
InProgress = 0,
Complete = 1
}
[Test]
public void Example()
{
Mapper.Map<OrderStatus, OrderStatusDto>(OrderStatus.InProgress)
.ShouldEqual(OrderStatusDto.InProgress);
Mapper.Map<OrderStatus, short>(OrderStatus.Complete).ShouldEqual((short)1);
Mapper.Map<OrderStatus, string>(OrderStatus.Complete).ShouldEqual("Complete");
Mapper.Map<short, OrderStatus>(1).ShouldEqual(OrderStatus.Complete);
Mapper.Map<string, OrderStatus>("Complete").ShouldEqual(OrderStatus.Complete);
}
但我認爲這隻適用於enum-to-enum映射。因爲當我嘗試使用.ShouldEqual
時,智能感知無法找到它。在那個代碼塊中,有一個名爲的引用,應該是,但我無法在任何地方找到它的引用。
有關如何使用automapper在枚舉和實體/類之間進行映射的任何想法? 有關使用Should的任何想法?
@我更新了問題,因爲沒有看到實際的代碼,很難考慮解決方案。這裏是代碼片段,可能需要:
public class ParameterEnum
{
/// <summary>
/// Enum Sayisi: 2650, Son Guncelleme Tarihi: 21.2.2013 09:40:37
/// </summary>
public enum Parameters : int
{
...
IsEmriTuruIsTalebi = 138,
<summary>
Adi: Kalite Öneri; ID: 2218; Seviyesi: 3; Aciklamasi: ; Aktif Mi: True
</summary>
...}}
的,這纔是正常的映射完成:
isEmriEntity.IsEmriTuruId = (int)ParameterEnum.Parameters.IsEmriTuruIsTalebi;
'ShouldEqual'是演示此功能的測試的一部分。它不是AutoMapper的一部分,你不需要它。 –
然後**。ForMember **方法也適用於這一個? –