[英]DevExpress Many-To-Many Association table
我在DevExpress支持人員發布了這個問題,盡管如此,我知道在這里我可能會更快地得到答案,這對我來說是一個很大的問題,而且我已經花了2天的時間才取得成功。 希望這里的人們可能對此框架有所了解。
我的問題與兩個業務對象之間存在MN關系時默認創建的關聯表有關。
想法是這樣的:
假設我有這些對象-> UNITS和USERS
對於UNIT中的每個USER,我需要存儲一個STATUS,因此我從SQL創建了一個新的屬性,稱為STATUS_IN_UNIT
![]()
當我想以編程方式訪問此屬性時 ,就會出現問題,這當然是不可能的,因為我沒有與此表關聯的任何對象。 唯一的方法是通過查詢數據庫來訪問它。
我要實現的是將此表顯示為UNIT DetailView中的ListView,這是強制性的,因為必須啟用和禁用附加到UNIT的USERS。 我看過這些線程
https://www.devexpress.com/Support/Center/Example/Details/E2334 https://www.devexpress.com/Support/Center/Question/Details/T500887
但是話又說回來,我正在尋找一個更簡單的解決方案,否則創建我自己的視圖和控制器來處理它真的很耗時。 所以我的問題如下:
1.如何創建引用此表的類? 2.如何在UNITS DetailView中顯示此表並從上表訪問其屬性?
如果您能回答這個問題,將不勝感激。
先感謝您 !!!
我假設您已經創建了一個用戶類,並在其中創建了一個Unit的集合,並在Unit類中創建了一個集合用戶。 在這種情況下,XAF將創建一個自動創建的中間表,稱為Users_Units,該表同時具有主鍵,並且您不能在其中添加任何屬性。 如果要在中間類中添加一個或多個屬性,則應顯式創建該類,因此代碼如下:
public class User : BaseObject
{ //... your code here
[Association("User-UserUnits")]
public XPCollection<UserUnit> UserUnits
{
get
{
return GetCollection<UserUnit>("UserUnits");
}
}
}
public class Unit : BaseObject
{ // ... your code here
[Association("Unit-UserUnits")]
public XPCollection<UserUnit> UsersUnitss
{
get
{
return GetCollection<UserUnit>("UserUnits");
}
}
}
public class UserUnit : BaseObject
{
User user;
[Association("User-UserUnits")]
public User User
{
get
{
return user;
}
set
{
SetPropertyValue("User", ref user, value);
}
}
Unit unit;
[Association("Unit-UserUnits")]
public Unit Unit
{
get
{
return unit;
}
set
{
SetPropertyValue("Unit", ref unit, value);
}
}
int status;
public int Status
{
get
{
return status;
}
set
{
SetPropertyValue("Status", ref status, value);
}
}
}
但是,當然,使用上面的代碼,您不能直接在用戶和單位之間彼此鏈接/取消鏈接。 相反,您應該手動添加明細記錄,因為它可以充當普通的主從關系或一對多實體關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.