Cannot convert from 'int' to 'System.Prädikat
Bin ich immer diese Fehlermeldung: Cannot convert from 'int' to 'System.Prädikat ServerHomeWork.Modelle.Organisation'
Sich an den Teil der die Zeile OrgList.Add(Organisation.Finden(UTO.OrganisationId);
die Eigenschaft UTO.OrganisationId ist ein int, aber es immer noch sagt, dass etwas falsch ist. Kann mir jemand sagen, was schief läuft hier?
der code ist hier:
public virtual List<Organisation> Organisation
{
get
{
List<UsersToOrganisations> UserToOrg = UsersToOrganisations.FindListOfOrganisations(UserId);
List<Organisation> OrgList = new List<Models.Organisation>();
if (UserToOrg.Count > 0)
foreach (UsersToOrganisations UTO in UserToOrg)
OrgList.Add(Organisation.Find(UTO.OrganisationId));
else
OrgList.Add(new Organisation("No organisation was found.", 0));
return OrgList;
}
}
dies ist die UserToOrganisation Klasse
class UsersToOrganisations
{
public int Id { get; set; }
public int UserId { get; set; }
public int OrganisationId { get; set; }
public bool MainOrganisation { get; set; }
///<summary>
///Constructor for entity framework
///</summary>
public UsersToOrganisations() { }
///<summary>
///Constructor for creation
///</summary>
///<param name="UserId"></param>
///<param name="OrganisationId"></param>
public UsersToOrganisations(int UserId, int OrganisationId, bool MainOrganisation)
{
this.UserId = UserId;
this.OrganisationId = OrganisationId;
this.MainOrganisation = MainOrganisation;
}
public class UsersToOrganisationsContext : DbContext
{
public DbSet<UsersToOrganisations> UserToOrganisation { get; set; }
}
///<summary>
///Get the list of organisations of a single user
///</summary>
///<param name="UserId"></param>
///<returns></returns>
public static List<UsersToOrganisations> FindListOfOrganisations(int UserId)
{
using (var context = new UsersToOrganisationsContext())
{
var organisation = (from uto in context.UserToOrganisation
where uto.UserId == UserId
select uto);
return organisation.ToList();
}
}
///<summary>
///Get the main organisation of a user
///</summary>
///<param name="UserId"></param>
///<returns></returns>
public static UsersToOrganisations FindMainOrganisation(int UserId)
{
using (var context = new UsersToOrganisationsContext())
{
var UserToOrganisation = context.UserToOrganisation
.Where(uto => uto.UserId == UserId && uto.MainOrganisation == true)
.SingleOrDefault();
return UserToOrganisation;
}
}
}
Nicht Sie fehlt eine schließende
Ja sorry habe ich. Aber die Nachricht von visual studio gibt, ist immer noch das gleiche.
)
es?Ja sorry habe ich. Aber die Nachricht von visual studio gibt, ist immer noch das gleiche.
InformationsquelleAutor StuiterSlurf | 2016-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Find
nimmt ein Prädikat als parameter. Alles, was Sie liefern ist ein int.Versuchen Sie Folgendes:
stackoverflow.com/questions/1710301/what-is-a-predicate-in-c
InformationsquelleAutor kskyriacou
Fand ich diese Frage, denn ich war mit
List.Find()
stattList.Contains()
. Die Umschaltung auf die VerwendungList.Contains()
wird die Arbeit mit nur einemint
so dass keine Notwendigkeit für das Prädikat.InformationsquelleAutor Steve Parish
Das problem ist in deinen lambda-Ausdruck in
OrgList.Add(Organisation.Find(UTO.OrganisationId));
Du willst, etwas zu tun
OrgList.Add(Organisation.Find(item => item.OrganisationId == UTO.OrganisationId));
Weitere Informationen: List(T).Finden Sie auf MSDN
InformationsquelleAutor Peter_Sz