I am writing a generic repository and got stuck on the List<t>() method, as I didn't have any entity set name. Normally you can glean this from an entity instance, like in an Update<t>() method, but List<t>() has no starting point. I deduced the following method to determine the Type of an entity set object that contains entities of type T, which is the type parameter of my repository object.
private static string GetEntitySetName(FoodEntities context)
{
var entitySetType = context.GetType().GetProperties().Where(
p =>
p.PropertyType.IsGenericType && p.PropertyType.Name.StartsWith("ObjectSet") &&
p.PropertyType.GetGenericArguments()[0].Name == typeof (T).Name).Single();
return entitySetType.Name;
}
I am a software developer in Johannesburg, South Africa. I specialise in C# and ASP.NET MVC, with SQL Server, with special fondness for MVC and jQuery. I have been in this business for about eighteen years, and am currently trying to master Angular 4 and .NET Core, and somehow find a way to strengthen my creative faculties.
- Follow me on Twitter at @bradykelly