Ci-dessous, je peux avoir une condition pour exécuter view / table, qui se chargerait dans la classe AccountDataModel.
dbcontext.AccountDataModel.FromSql($"select * from account where id=123").FirstOrDefault();
Comment puis-je récupérer sans utiliser de modèle de classe, si je veux simplement récupérer 1 ou 2 colonnes
exemple: sélectionnez le nom du compte où id = 123
Ai-je toujours besoin d'un modèle de classe?
3 Réponses :
Oui. comme ceci:
var account = dbcontext.AccountDataModel.FromSql(@"select a.id, a.name from account a where a.id=123");
Je ne veux pas utiliser AccoutDataModel, je sais que je peux mapper de sql à ma classe POCO (comme je l'ai mentionné dans l'exemple) Je veux récupérer un exemple de colonne 'nom' à var name = dbcontext.XXXX ....
vous voulez dire quelque chose comme ça: learnentityframeworkcore. com /… ? (section Exploiter ADO.NET via la propriété Context.Database)
Ceci interroge la base de données
var name = dbcontext.GetDBConnection().Query("select name from account where id=123").FirstOrDefault();
@Ben Réponse mise à jour
Je ne parviens pas à obtenir l'instance GetDbConnection () et si j'utilise dbcontext.Database.GetDbConnection (), alors Query (..) est introuvable. Dois-je installer le package NuGet?
ADO.NET fonctionne dans EF Core =)
using Microsoft.EntityFrameworkCore; using System.Data.Common; using System.Data.SqlClient; using System; public void ExampleMethod(DbContext context) { SomeObjectResult result = null; DbCommand cmd = context.Database.GetDbConnection().CreateCommand(); cmd.CommandText = "Select C.ID, C.CarModelID as ModelID, C.VIN, C.RegNumber,cast(C.CountValue as int) as Course,A.BrandID from A inner join C on A.ID = C.KeyID Where A.ID = @appID"; cmd.Parameters.Add(new SqlParameter("@appID", appointmentID)); if (cmd.Connection.State != ConnectionState.Open) { cmd.Connection.Open(); } using (var reader = await cmd.ExecuteReaderAsync()) { if (reader.Read()) { result = new SomeObjectResult() { BrandID = (int)reader["BrandID"], Course = (int)reader["Course"], ID = (int)reader["ID"], ModelID = (int?)reader["ModelID"], RegNumber = (string)reader["RegNumber"], VIN = (string)reader["VIN"] }; } } }