This question is locked. New answers and comments are not allowed.
Hello,
I am using the ORM fluent mapping and I have managed to create my schema etc and have just figured out the associations and got that working last night. I am still struggling to figure out the IsDependent() so that I can set up cascade deletes.
I have tried several things and am not sure if I am getting it or if I am missing something. My intepretation of cascade deletes is that I usually set it up in the Foreign Key Relationships dialog in management studio. So I am looking for the Cascade Delete to be set to true after executing my fluent code. Is that the case or am I looking in the wrong direction?
My classes are as follows:
I am using the ORM fluent mapping and I have managed to create my schema etc and have just figured out the associations and got that working last night. I am still struggling to figure out the IsDependent() so that I can set up cascade deletes.
I have tried several things and am not sure if I am getting it or if I am missing something. My intepretation of cascade deletes is that I usually set it up in the Foreign Key Relationships dialog in management studio. So I am looking for the Cascade Delete to be set to true after executing my fluent code. Is that the case or am I looking in the wrong direction?
My classes are as follows:
internal class DefaultMappingDataSource : FluentMetadataSource{ //In order to generate DDL script for creating constraints in the database, you should override the CreateModel method. protected override Telerik.OpenAccess.Metadata.MetadataContainer CreateModel() { Telerik.OpenAccess.Metadata.MetadataContainer model = base.CreateModel(); model.DefaultMapping.NullForeignKey = true; return model; } protected override IList<MappingConfiguration> PrepareMapping() { //Define mapping configuration. var mappingConfig = new List<MappingConfiguration>(); //Call mapping config method entities. var tagBankConfig = PrepareTagBankMapping(); var abLogix5000Config = PrepareABLogix5000Mapping(); var modbusConfig = PrepareModbusMapping(); //Set upp associations. tagBankConfig .HasAssociation(e => e.ABLogixAssociation) .WithOpposite(p => p.TagBankAssociation) .HasConstraint((e, p) => e.TagBankId == p.ABLogix_TagBankId) .IsManaged() .IsDependent(true) .IsRequired(); //abLogix5000Config // .HasAssociation(e => e.TagBankAssociation) // .WithOpposite(p => p.ABLogixAssociation) // .HasConstraint((e, p) => e.ABLogix_TagBankId == p.TagBankId) // .IsManaged() // .IsDependent(true) // .IsRequired(); //Add the table entities to the configuration. mappingConfig.Add(tagBankConfig); mappingConfig.Add(abLogix5000Config); mappingConfig.Add(modbusConfig); return mappingConfig; } private MappingConfiguration<Tags_TagBank> PrepareTagBankMapping() { //Create mapping configuration for table columns/properties. var config = new MappingConfiguration<Tags_TagBank>(); //Map/create table. config.MapType(x => new { TagBankId = x.TagBankId, Bank = x.Name }).ToTable("Banks"); config.HasProperty(bank => bank.TagBankId).IsIdentity(KeyGenerator.Autoinc); config.HasProperty(bank => bank.Name).IsNullable().IsUnicode().HasLength(50); return config; } private MappingConfiguration<Tags_ABLogix5000> PrepareABLogix5000Mapping() { //Create mapping configuration for table columns/properties. var config = new MappingConfiguration<Tags_ABLogix5000>(); //Map/create table. config.MapType(x => new { Id = x.TagId, ABLogix_TagBankId = x.ABLogix_TagBankId, TagName = x.TagName }).ToTable("TagsABLogix5000"); config.HasProperty(ablogix => ablogix.TagId).IsIdentity(KeyGenerator.Autoinc); config.HasProperty(ablogix => ablogix.ABLogix_TagBankId).IsNotNullable(); return config; }
public class Tags_ABLogix5000{ //Mapped properties. public int TagId { get; set; } public int ABLogix_TagBankId { get; set; } public string TagName { get; set; } //Associations public Tags_TagBank TagBankAssociation { get; set; }}
public class Tags_TagBank{ public Tags_TagBank() { this.ABLogixAssociation = new List<Tags_ABLogix5000>(); } //Mapped properties. public int TagBankId { get; set; } public string Name { get; set; } //Associations public IList<Tags_ABLogix5000> ABLogixAssociation { get; set; }}
I have tried using the tagbankconfig and the ablogix5000 config and see no visible result.
I would appreciate some help to solve my dilema with this issue.
Thanks
chom