Ich versuche in meinem Repository eine generische Funktion zu erstellen, um den nächsthöheren Int in einer Spalte namens Order zu erhalten. Ich denke, ich habe die Methode richtig, bin mir aber nicht sicher, wie ich es nennen soll.MVC Entity Framework generisch Get Next Int
namespace MyApp.Data.Models.Core.Repositories
{
public interface INextOrder
{
int AppID { get; set; }
int Order { get; set; }
}
}
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class, INextOrder
{
public int NextFind(TEntity predicate, int appID)
{
int result = 0;
var count = Context.Set<TEntity>().Count();
if (count != 0)
{
result = (from List in Context.Set<TEntity>()
where List.AppID == appID
orderby List.Order
select List.Order).ToList().LastOrDefault();
result++;
}
return result;
}
}
Edit: Die NextFind Methode für den derzeit größten Int-Wert in der Order-Tabelle suchen, erhöhen sie von ein und dann diesen Wert zurück. Es müssen Parameter sein, welche Entity Framework-Entity-Klasse zu suchen ist, und auch ein Integer-Wert für Filterzwecke.
Ich erkannte dank Ihrer Antwort, dass ich darüber nachgedacht habe. Meine Methodendefinition musste sein: public int NextFind (int appID) – user3140169
Leider schien mein fixed zu funktionieren, bis ich meine Lösung neu aufgebaut habe. Ich bekomme jetzt den Fehler, dass es keine implizite Referenzkonvertierung von der Klasse (Tentity) nach INextOrder gibt. – user3140169
@ user3140169, öffnen Sie eine andere Frage mit den Klassendefinitionen und jemand wird Ihnen auf jeden Fall etwas Hilfe geben (ich werde, wenn ich zuerst dazu komme, aber bezweifle es lol). – workabyte