Mike Lowrey
Commodore
- Registriert
- Juni 2005
- Beiträge
- 4.978
Hallo zusammen,
ich habe gerade das Problem das Microsoft EntityFramework mir ein Modell generiert, welches jegliche Normalformen ignoriert und mir nicht gänzlich klar ist, wie ich dafür sorgen kann das dies anders gemacht wird.
Folgende Situation:
Das Problem ist folgendes:
Die User sollten eigentlich nur einmalig angelegt werden.
Und ich möchte mehr aus Bequemlichkeit als aus Bedarf im User Objekt eine Liste der Kalendareinträge haben (ich habe es ursprünglich weggelassen, dass funktioniert trotzdem nicht).
Eigentlich gehören die Kalendereinträge aber einem Objekt Kalender, die "Owner" Eigenschaft ist "zusätzlich".
Das Problem ist jetzt das er ein einfaches Feld KalenderEintrag der Tabelle User hinzufügt. Der Wert ist aber völlig nutzlos.
Am liebsten wäre es mir er würde einfach rausfliegen.
Alternativ eben das die Verbindung Owner_KalenderEintrag in einer eigenen Tabelle herstelle.
Gibt's dafür eine FluentApi Funktion.
Vielen Dank!
ich habe gerade das Problem das Microsoft EntityFramework mir ein Modell generiert, welches jegliche Normalformen ignoriert und mir nicht gänzlich klar ist, wie ich dafür sorgen kann das dies anders gemacht wird.
Folgende Situation:
Code:
public class User
{
[Key]
public int UserId { get; set; }
[Required]
public string GivenName { get; set; }
[Required]
public string Surname { get; set; }
[Required]
public string MailAddress { get; set; }
[Required]
public string PhoneNumber { get; set; }
[Required]
public string UserName { get; set; }
//SHA512Hashed
private string _password = null;
public string Password
{
get
{
return _password;
}
set
{
_password = getSHA512Hash(value);
}
}
public virtual ICollection<CalendarEntry> CalendarEntries { get; set; }
public virtual ICollection<Calendar> Calendar { get; set; }
public virtual ICollection<Group> Groups { get; set; }
public virtual ICollection<Invite> Invites { get; set; }
}
public class CalendarEntry
{
public CalendarEntry()
{
Invitees = new List<User>();
}
public virtual ICollection<User> Invitees { get; set; }
public bool IsEmpty
{
get
{
if (Invitees.Count == 0)
{
return true;
}
return false;
}
}
[Key]
public int CalendarEntryId { get; set; }
[Required]
public DateTime StartDate { get; set; }
[Required]
public DateTime EndDate { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public double Duration
{
get
{
return EndDate.Subtract(StartDate).TotalMinutes;
}
}
public virtual Owner { get; set; }
public int? CalendarId { get; set; }
public virtual Calendar Calendar { get; set; }
public virtual Room Room { get; set; }
}
Das Problem ist folgendes:
Die User sollten eigentlich nur einmalig angelegt werden.
Und ich möchte mehr aus Bequemlichkeit als aus Bedarf im User Objekt eine Liste der Kalendareinträge haben (ich habe es ursprünglich weggelassen, dass funktioniert trotzdem nicht).
Eigentlich gehören die Kalendereinträge aber einem Objekt Kalender, die "Owner" Eigenschaft ist "zusätzlich".
Das Problem ist jetzt das er ein einfaches Feld KalenderEintrag der Tabelle User hinzufügt. Der Wert ist aber völlig nutzlos.
Am liebsten wäre es mir er würde einfach rausfliegen.
Alternativ eben das die Verbindung Owner_KalenderEintrag in einer eigenen Tabelle herstelle.
Gibt's dafür eine FluentApi Funktion.
Vielen Dank!