Dans notre ASP.NET Core 1.1
avec EF Core 1.1 app
, nous avons un scénario similaire à celui-ci: La table parent PT
et la table enfant CH
ont une relation FK 1-1. Nous devons obtenir quelques colonnes de certains enregistrements de la table PT
et quelques colonnes des enregistrements associés de la table CH
. Question: Comment pouvons-nous charger ces enregistrements dans une chaîne délimitée par des virgules? Le code suivant charge ces enregistrements liés à ViewModel
.EF-Core: chargement des données liées dans une chaîne
Note: Si nous devions charger des enregistrements - dans une chaîne délimitée par des virgules - que, disons, PT
nous ferions ce qui suit:
string csv = string.Concat(
PT.Select(
p => string.Format("{0},{1},{2}\n", p.PTCol1, p.PTCol2, p.PTCol3)));
PT:
public class PT
{
Public int PTId {get; set;}
Public int PTCol1 {get; set;}
Public string PTCol1 {get; set;}
Public float PTCol1 {get; set;}
....
public CH ch { get; set; }
}
CH:
public class CH
{
Public int CHCol1 {get; set;}
Public string CHCol2 {get; set;}
....
public int? PTId { get; set; }
public PT pt { get; set; }
}
ViewModel:
public class PT_CH_ViewModel
{
Public int PTCol1 {get; set;}
Public string PTCol1 {get; set;}
Public float PTCol1 {get; set;}
....
Public int CHCol1 {get; set;}
Public string CHCol2 {get; set;}
....
}
Controller: besoin de charger une chaîne délimitée par des virgules ici
var pts = _context.PT
.Include(p => p.CH)
.Where(p => p.PTcol == selectedID)
.Select(pt => new PT_CH_ViewModel()
{
PTCol1 = pt.Col1,
PTCol2 = pt.Col2,
PTCol3 = pt.Col3,
CHCol1 = pt.CH.Col1,
CHCol2 = pt.CH.Col2
}).ToList();
J'ai marqué votre réponse comme une réponse. Vous pouvez ajouter le caractère de nouvelle ligne '\ n' dans' string.Format ("{0}, {1}", p.PTCol1, p.CHCol1); 'de votre code. Merci. – nam