powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC + Web API 2
25 сообщений из 28, страница 1 из 2
MVC + Web API 2
    #39096013
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю проект MVC + Web API 2. День угробил, но так и не онял, в чем дело. при обращении к методам контроллера в респонс огребается одна и таже фигня...

автор{"Message":"An error has occurred.","ExceptionMessage":"The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; charset=utf-8'.","ExceptionType":"System.InvalidOperationException","StackTrace":null,"InnerException":{"Message":"An error has occurred.","ExceptionMessage":"Error getting value from 'AssignedPhotoAlbum' on 'System.Data.Entity.DynamicProxies.PhotoImage_BEFE2625DE72A4CA4919DEF1173EF711F37B98D60AA1658717F607E91FE1D6F0'.","ExceptionType":"Newtonsoft.Json.JsonSerializationException","StackTrace":" at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)\r\n at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)\r\n at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)\r\n at System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, Encoding effectiveEncoding)\r\n at System.Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, Encoding effectiveEncoding)\r\n at System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content)\r\n at System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.WebHost.HttpControllerHandler.<WriteBufferedResponseContentAsync>d__1b.MoveNext()","InnerException":{"Message":"An error has occurred.","ExceptionMessage":"An error occurred while executing the command definition. See the inner exception for details.","ExceptionType":"System.Data.Entity.Core.EntityCommandExecutionException","StackTrace":" at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)\r\n at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)\r\n at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__6()\r\n at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)\r\n at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()\r\n at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)\r\n at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)\r\n at System.Data.Entity.Core.Objects.ObjectQuery`1.Execute(MergeOption mergeOption)\r\n at System.Data.Entity.Core.Objects.DataClasses.EntityReference`1.Load(MergeOption mergeOption)\r\n at System.Data.Entity.Core.Objects.DataClasses.RelatedEnd.DeferredLoad()\r\n at System.Data.Entity.Core.Objects.Internal.LazyLoadBehavior.LoadProperty[TItem](TItem propertyValue, String relationshipName, String targetRoleName, Boolean mustBeNull, Object wrapperObject)\r\n at System.Data.Entity.Core.Objects.Internal.LazyLoadBehavior.<>c__DisplayClass7`2.<GetInterceptorDelegate>b__2(TProxy proxy, TItem item)\r\n at System.Data.Entity.DynamicProxies.PhotoImage_BEFE2625DE72A4CA4919DEF1173EF711F37B98D60AA1658717F607E91FE1D6F0.get_AssignedPhotoAlbum()\r\n at GetAssignedPhotoAlbum(Object )\r\n at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)","InnerException":{"Message":"An error has occurred.","ExceptionMessage":"There is already an open DataReader associated with this Command which must be closed first.","ExceptionType":"System.InvalidOperationException","StackTrace":" at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)\r\n at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)\r\n at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)\r\n at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)\r\n at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)\r\n at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)\r\n at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)\r\n at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)\r\n at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<Reader>b__c(DbCommand t, DbCommandInterceptionContext`1 c)\r\n at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)\r\n at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)\r\n at System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(CommandBehavior behavior)\r\n at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)\r\n at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)"}}}}
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096015
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то совсем плохо с сериализацией в Web API?
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096017
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
controller
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Description;
using WebGallery.Models;

namespace WebGaleryAPI.Controllers
{
    public class PhotoImagesController : ApiController
    {
        private PhotoDbContext db = new PhotoDbContext();

        // GET: api/PhotoImages
        public IQueryable<PhotoImage> GetPhotoImages()
        {
            return db.PhotoImages;
        }

        // GET: api/PhotoImages/5
        [ResponseType(typeof(PhotoImage))]
        public async Task<IHttpActionResult> GetPhotoImage(int id)
        {
            PhotoImage photoImage = await db.PhotoImages.FindAsync(id);
            if (photoImage == null)
            {
                return NotFound();
            }

            return Ok(photoImage);
        }

        // PUT: api/PhotoImages/5
        [ResponseType(typeof(void))]
        public async Task<IHttpActionResult> PutPhotoImage(int id, PhotoImage photoImage)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != photoImage.Id)
            {
                return BadRequest();
            }

            db.Entry(photoImage).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PhotoImageExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }

        // POST: api/PhotoImages
        [ResponseType(typeof(PhotoImage))]
        public async Task<IHttpActionResult> PostPhotoImage(PhotoImage photoImage)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            db.PhotoImages.Add(photoImage);
            await db.SaveChangesAsync();

            return CreatedAtRoute("DefaultApi", new { id = photoImage.Id }, photoImage);
        }

        // DELETE: api/PhotoImages/5
        [ResponseType(typeof(PhotoImage))]
        public async Task<IHttpActionResult> DeletePhotoImage(int id)
        {
            PhotoImage photoImage = await db.PhotoImages.FindAsync(id);
            if (photoImage == null)
            {
                return NotFound();
            }

            db.PhotoImages.Remove(photoImage);
            await db.SaveChangesAsync();

            return Ok(photoImage);
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }

        private bool PhotoImageExists(int id)
        {
            return db.PhotoImages.Count(e => e.Id == id) > 0;
        }
    }
}

...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096019
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пышыт же

Relic Hunter Error getting value from 'AssignedPhotoAlbum'
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096026
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,
"There is already an open DataReader associated with this Command which must be closed first." в RunExecuteReader. Смотри что там не то.
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096027
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,

Да таблицы PhotoAlbum и PhotoImages связанные. С обычным контроллером проблем не возникало.
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096028
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, с простой таблицей без внешних ключей - работает. А стакими нет.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
    public class PhotoAlbum
    {
        public int Id { get; set; }
        [MaxLength(100)]
        public string Name { get; set; }
        [MaxLength(100)]
        public string Author { get; set; }
        public DateTime CreationDate { get; set; }
        public virtual ICollection<PhotoImage> PhotoImages { get; set; }
        public PhotoAlbum()
        {
            CreationDate = DateTime.Now;
        }
    }

    public class PhotoImage
    {
        public int Id { get; set; }

        [Required]
        public string Title { get; set; }

        public string AltText { get; set; }

        //[DataType(DataType.Html)]
        //public string Caption { get; set; }

        [Required]
        [DataType(DataType.Upload)]
        [Display(Name = "Picture")]
        public string ImageUrl { get; set; }

        [Display(Name = "Created On")]
        private DateTime? createdDate;
        [Required]
        [DataType(DataType.DateTime)]
        public DateTime CreatedDate
        {
            get { return createdDate ?? DateTime.UtcNow; }
            set { createdDate = value; }
        }

        [ForeignKey("AssignedPhotoAlbumId")]
        public virtual PhotoAlbum AssignedPhotoAlbum { get; set; }
        public virtual int AssignedPhotoAlbumId { get; set; }
    }

...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096029
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter

Код: c#
1.
 public virtual int AssignedPhotoAlbumId { get; set; }






А зачем тут virtual?
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096032
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,

Морель была взаимствована из обычного MVC приложения. Все работало как часы. С web api не хочет.
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096037
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема решена. Нужно прикручивать плоские DTO классы, с уже денормализавованными М-Д свойствами. Подробнее тут...

http://www.asp.net/web-api/overview/web-api-routing-and-actions/create-a-rest-api-with-attribute-routing

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
    public class PhotoImageDto
    {
        public string Title { get; set; }

        public string AltText { get; set; }
        public string ImageUrl { get; set; }

        public string PhotoAlbum { get; set; }

    }


namespace WebGaleryAPI.Controllers
{
    public class PhotoImagesController : ApiController
    {
        private PhotoDbContext db = new PhotoDbContext();

        private static readonly Expression<Func<PhotoImage, PhotoImageDto>> AsPhotoImageDto =
                    x => new PhotoImageDto
                    {
                        Title = x.Title,
                        ImageUrl = x.ImageUrl,
                        PhotoAlbum = x.AssignedPhotoAlbum.Name
                    };
        // GET: api/PhotoImages
        public IQueryable<PhotoImageDto> GetPhotoImages()
        {
            //return db.PhotoImages;
            return db.PhotoImages.Include(p => p.AssignedPhotoAlbum).Select(AsPhotoImageDto);
        }

...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096973
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не проблема решена не полностью. Плоские объекты заработали. А иерархические? Да и тот контроллер, что генерится скаффолдингом нифига CRUD не работает. WebAPI кто-то пользует? Думал ASP.NET сохранить для бэкенда, но, что-то, не идет.
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39096991
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter WebAPI кто-то пользует?

Пользует. Проблем вообще нет. Вернее была - что по атрибутам сериализатор вытаскивал вообще чуть ли не всю базу, пришлось расставлять [JsonIgnore]
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097071
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterНе проблема решена не полностью. Плоские объекты заработали. А иерархические? Да и тот контроллер, что генерится скаффолдингом нифига CRUD не работает. WebAPI кто-то пользует? Думал ASP.NET сохранить для бэкенда, но, что-то, не идет.

Всё идёт. Какие ещё иерархические? Дай сериализатору нормальные DTO классы и всё будет оке, зачем мудрить??
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097072
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueВернее была - что по атрибутам сериализатор вытаскивал вообще чуть ли не всю базу, пришлось расставлять [JsonIgnore]

Долбоепизм... Я б уволил.
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097080
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttДай сериализатору нормальные DTO классы
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097082
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

classes

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
namespace WebGalleryAPI.Models
{

    public class PhotoAlbum
    {
        public int Id { get; set; }
        [MaxLength(100)]
        public string Name { get; set; }
        [MaxLength(100)]
        public string Author { get; set; }
        public DateTime CreationDate { get; set; }
        public virtual ICollection<PhotoImage> PhotoImages { get; set; }
        public PhotoAlbum()
        {
            CreationDate = DateTime.Now;
        }
    }

    public class PhotoImage
    {
        public int Id { get; set; }

        [Required]
        public string Title { get; set; }

        public string AltText { get; set; }

        [Required]
        [DataType(DataType.Upload)]
        [Display(Name = "Picture")]
        public string ImageUrl { get; set; }

        [Display(Name = "Created On")]
        private DateTime? createdDate;
        [Required]
        [DataType(DataType.DateTime)]
        public DateTime CreatedDate
        {
            get { return createdDate ?? DateTime.UtcNow; }
            set { createdDate = value; }
        }

        [ForeignKey("AssignedPhotoAlbumId")]
        public virtual PhotoAlbum AssignedPhotoAlbum { get; set; }
        public virtual int AssignedPhotoAlbumId { get; set; }
    }
}

...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097083
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

а где DTO?
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097085
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

короче, DTO + AutoMapper
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097086
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКакие ещё иерархические?

наверное которые граф не может быть сериализован, так как циклическая ссылка
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097088
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttRelic Hunter,

короче, DTO + AutoMapperКуда послал? Можешь рукой показать?
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097103
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueВернее была - что по атрибутам сериализатор вытаскивал вообще чуть ли не всю базу, пришлось расставлять [JsonIgnore]

Долбоепизм... Я б уволил.

Ты Мань на грубость нарываешься.
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097108
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueRelic Hunter
Код: c#
1.
 public virtual int AssignedPhotoAlbumId { get; set; }






А зачем тут virtual?
авторazy Loading

With lazy loading, EF automatically loads a related entity when the navigation property for that entity is dereferenced. To enable lazy loading, make the navigation property virtual. For example, in the Book class:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class Book
{
    // (Other properties)

    // Virtual navigation property
    public virtual Author Author { get; set; }
}
...
var books = db.Books.ToList();  // Does not load authors
var author = books[0].Author;   // Loads the author for books[0]
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097113
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterMonochromatiqueпропущено...


А зачем тут virtual?
авторazy Loading

With lazy loading, EF automatically loads a related entity when the navigation property for that entity is dereferenced. To enable lazy loading, make the navigation property virtual. For example, in the Book class:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class Book
{
    // (Other properties)

    // Virtual navigation property
    public virtual Author Author { get; set; }
}
...
var books = db.Books.ToList();  // Does not load authors
var author = books[0].Author;   // Loads the author for books[0]



Не надо было так стараться.

Я выделил строчку, где virtual не нужен.
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097141
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueТы Мань на грубость нарываешься.

А я и не для тебя это сказал. Это долбоебизм и я бы уволил к херам за такое, ещё раз скажу
...
Рейтинг: 0 / 0
MVC + Web API 2
    #39097142
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterhVosttRelic Hunter,

короче, DTO + AutoMapperКуда послал? Можешь рукой показать?

https://www.google.ru/search?q=DTO AutoMapper
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC + Web API 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]