Код: Выделить всё
public class Client {
public School? School { get; set; }
public IList? Channels { get; set; }
}
public class Channel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long ID { get; set; }
public string Name { get; set; } = string. Empty;
}
public class School
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long ID { get; set; }
public string Name { get; set; } = string. Empty;
}
Код: Выделить всё
group.MapPut("/{id}", async Task (long id,
Domain.Client client, DbContext db) => {
var affected = await db.Client
.Where(model => model.ID == id)
.ExecuteUpdateAsync(setters => setters
.SetProperty(m => m.FirstName, client.FirstName)
// more fields but not School or Channel
);
return affected == 1 ? TypedResults.Ok() : TypedResults.NotFound();
}
Код: Выделить всё
group.MapPut("/{id}", async Task (long id,
Domain.Client client, DbContext db) => {
if(client.Channels != null)
{
var listChannels = client.Channels.ToList();
client.Channels = new List();
foreach(Channel c in listChannels)
{
var cn = db.Channels.Where(t => t.ID == c.ID).FirstOrDefault();
if (cn != null)
client.Channels.Add(cn);
}
}
if (client.School != null)
{
var school = db.Schools
.Where(s => s.ID == client.School.ID).FirstOrDefault();
if (school != null)
client.School = school;
else
client.School = null;
}
var affected = await db.Client
.Where(model => model.ID == id)
.ExecuteUpdateAsync(setters => setters
.SetProperty(m => m.FirstName, client.FirstName)
);
return affected == 1 ? TypedResults.Ok() : TypedResults.NotFound();
}
Что я делаю неправильно?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ework-core