This question is locked. New answers and comments are not allowed.
I am facing a situation where the Open Access ORM is not generating correct code.
I have three tables in my database named "Provider" (primary key "ProviderID"), "Languages" (primary key "LanguageID")
and "ProviderLanguages" (with columns "ProviderID", "LanguageID" as FKey from Provider and Languages) which acts as a join table. One provider can have multiple languages.
When I generate "Data Access Layer"(DAL) through ORM, "Languages" lands as a non-updatable (into DB) property of "Provider". As a result, I am not able to update "Languages" when I am editing Provider through UI.
I get "Languages" as property of "Provider" type in DAL as:
If I go by "Model first" scheme and generate the "Join table" (ProviderLanguages) through Open Access ORM tool using:
http://www.telerik.com/help/openaccess-orm/developer-guide-domain-model-working-associations-many-to-many-custom-table.html, I am able to generate correct property exactly as I expect.
But how to solve this in "Database First" scenario?
TIA.
I have three tables in my database named "Provider" (primary key "ProviderID"), "Languages" (primary key "LanguageID")
and "ProviderLanguages" (with columns "ProviderID", "LanguageID" as FKey from Provider and Languages) which acts as a join table. One provider can have multiple languages.
When I generate "Data Access Layer"(DAL) through ORM, "Languages" lands as a non-updatable (into DB) property of "Provider". As a result, I am not able to update "Languages" when I am editing Provider through UI.
I get "Languages" as property of "Provider" type in DAL as:
private IList<
Language
> _languages = new List<
Language
>();
[Collection(InverseProperty = "Providers")]
[Storage("_languages")]
public virtual IList<
Language
> Languages
{
get
{
return this._languages;
}
}
whereas "Providers" lands as a property of "Language" type in DAL as:
As you can see in code above, "Providers" property has the [Column()] metadata but not "Languages" property. I was expecting the opposite.private IList<
Provider
> _providers = new List<
Provider
>();
[JoinTableAssociation(TableName = "ProviderLanguages", OwnerColumns = "LanguageID", TargetColumns = "ProviderID", SourceConstraint = "ref_PrvdrLnggs_Bwy_Lngages", TargetConstraint = "ref_PrvdrLnggs_Prvders")]
[Column("LanguageID", OpenAccessType = OpenAccessType.Int32, IsPrimaryKey = true, Length = 0, Scale = 0, SqlType = "int")]
[Column("ProviderID", OpenAccessType = OpenAccessType.Int32, IsPrimaryKey = true, Length = 0, Scale = 0, SqlType = "int")]
[Storage("_providers")]
public virtual IList<
Provider
> Providers
{
get
{
return this._providers;
}
}
If I go by "Model first" scheme and generate the "Join table" (ProviderLanguages) through Open Access ORM tool using:
http://www.telerik.com/help/openaccess-orm/developer-guide-domain-model-working-associations-many-to-many-custom-table.html, I am able to generate correct property exactly as I expect.
But how to solve this in "Database First" scenario?
TIA.