Ваш вопрос не очень ясен, но это должно достигнуть того, что вы пытаетесь сделать:
decimal numericValue = 3494309432324.00m;
string formatted = numericValue.ToString("#,##0.00");
Тогда formatted
будет содержать: 3,494,309,432,324.00
Возможно, это немного «обманывает» ответ, но я действительно добился того, чего хотел с помощью awaome AutoMapper . Я думаю, что за кадром, это делает рекурсивную работу для меня. Мой объект EF имеет свойство навигации Parent
, мой DTO для отображения выглядит примерно так:
public class CompanyInChainDTO
{
public Guid Id { get; set; }
public string Name { get; set; }
public CompanyInChainDTO Parent { get; set; }
}
... и этот код заставляет AutoMapper создавать цепочку DTO от дочернего элемента с помощью заданный ID до корневого родителя (т. е. тот, у которого нет Parent
):
Mapper.Initialize(conf =>
{
conf.CreateMap<EF.Company, CompanyInChainDTO>().MaxDepth(100);
});
using (var context = new EfContext())
{
var child = context.Companies.First(comp => comp.Id == [whatever]);
CompanyInChainDTO childDto = Mapper.Map<CompanyInChainDTO>(child);
return childDto; // Returns the child DTO with full Child -> Parent chain!
}
Очень круто - я не знал, что AutoMapper по умолчанию сохраняет свойства навигации EF. Обратите внимание, как я также использую MaxDepth(100)
для обеспечения безопасности, чтобы предотвратить бесконечную рекурсию на случай, если нет корневой материнской компании!