J'ai deux classes connectées définies comme ceci:gestion manuelle d'une table de jointure dans le château ActiveRecord
[ActiveRecord]
public class Store : ActiveRecordBase<Store> {
[PrimaryKey]
public int ID { get; set; }
[HasAndBelongsToMany(Table = "StoreCustJoin",
ColumnKey = "storeID",
ColumnRef = "customerID")]
public IList<Customer> customers { get; set; }
}
[ActiveRecord]
public class Customer : ActiveRecordBase<Customer> {
[PrimaryKey]
public int ID { get; set; }
[HasAndBelongsToMany(Table = "Join",
ColumnKey = "customerID",
ColumnRef = "storeID",
inverse = true)]
public IList<Store> stores { get; set; }
}
[ActiveRecord]
public class Join : ActiveRecordBase<Join> {
[PrimaryKey]
public int ID { get; set; }
[BelongsTo("storeID")]
public Store store { get; set; }
[BelongsTo("customerID")]
public Customer customer { get; set; }
[Property]
public int Status { get; set; }
}
Lorsque je connecte un magasin à un client que je dois définir l'état aussi bien. J'ai donc essayé de le faire:
public void SetLink(Store theStore, Customer theCustomer, int status) {
var link = new Join()
{
Status = status,
store = theStore,
customer = theCustomer
};
theStore.customers.Add(theCustomer);
theCustomer.stores.Add(theStore);
}
Cela crée deux entrées dans ABJoin, le premier avec l'ensemble d'état, la deuxième sans. Si je n'ajoute pas les objets à leurs listes respectives, cela fonctionne. Mais alors le lien n'est pas reflété dans ces objets jusqu'à ce que la session en cours soit fermée et l'instance soit re-téléchargée à partir de la base de données.
Alors, y a-t-il un moyen de définir l'état lorsque je crée le lien et de garder les objets actuels valides et à jour?
Merci. Cela m'aide beaucoup. – Jacobi