Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
If you're creating a bug/problem report, please include followings:
- ABP Framework version: 7.0.2 latest
- UI type: MVC
- DB provider: EF Core / MongoDB
- Tiered (MVC) or Identity Server Separated (Angular): no
- Exception message and stack trace:
- Steps to reproduce the issue:"
Hey abp team As we know when we create over a project we will get the identity model in that we have a user, and role management this is in my main database and I have another one model where I have the Candidate table which is in another database. in roles, i have a practitioner and i want to assign Practitioner to the Candidates
as we can see in the screenshot I have two models with a separate database modelA has Candidates and Mylearning2 has another one database and tables which ABP provide. I want to Access this Mylearning2 database tables on my ModelA model
17 Answer(s)
-
0
Hi,
You can set the connection string. See: https://docs.abp.io/en/abp/latest/Entity-Framework-Core-Migrations#change-the-connection-strings-section
-
0
Hi,
You can set the connection string. See: https://docs.abp.io/en/abp/latest/Entity-Framework-Core-Migrations#change-the-connection-strings-section
Hey, Thanks for replying.
I have gone through this documentation but in this documentation, they are configuring multiple databases in one module. But I have two modules and I Need the data of the Base module for My other Module I have MY multiple Connection String and dBContext. But I am not able to the list of user whose Role Is Teacher in my Sub Module......
<br> And as we Can See if I am Adding the Date Of Birth in Configure Extra property It's Showing DD-MM-YY-HH-MM-AM I need only DD-MM-YYYY can anyone suggest how to configure that....
-
0
they are configuring multiple databases in one module
The database is separated, and each module can have its own database, by configuring the connection string, a module can access the b database
See: https://docs.abp.io/en/abp/latest/Connection-Strings
Or you can use the C# API client proxies, This way you can access the API, but not directly read the database in the module
And as we Can See if I am Adding the Date Of Birth in Configure Extra property It's Showing DD-MM-YY-HH-MM-AM I need only DD-MM-YYYY can anyone suggest how to configure that....
You can add DisplayFormatAttribute to the extra property:
ObjectExtensionManager.Instance.Modules() .ConfigureIdentity(identity => { identity.ConfigureUser(user => { user.AddOrUpdateProperty<DateTime>( "Birthday", property => { var format = new DisplayFormatAttribute() { DataFormatString = "dd/MM/yyyy" }; property.Attributes.Add(format); } ); }); });
-
0
they are configuring multiple databases in one module
The database is separated, and each module can have its own database, by configuring the connection string, a module can access the b database
See: https://docs.abp.io/en/abp/latest/Connection-Strings
Or you can use the C# API client proxies, This way you can access the API, but not directly read the database in the module
And as we Can See if I am Adding the Date Of Birth in Configure Extra property It's Showing DD-MM-YY-HH-MM-AM I need only DD-MM-YYYY can anyone suggest how to configure that....
You can add DisplayFormatAttribute to the extra property:
ObjectExtensionManager.Instance.Modules() .ConfigureIdentity(identity => { identity.ConfigureUser(user => { user.AddOrUpdateProperty<DateTime>( "Birthday", property => { var format = new DisplayFormatAttribute() { DataFormatString = "dd/MM/yyyy" }; property.Attributes.Add(format); } ); }); });
I tried that it's not working it's showing the same and I need a solution As we know when we create a project we will get the identity model in that we have a user, and role management this is in my main database and I have another model where I have the Candidate table which is in another database. in roles, I have a practitioner and I want to assign Practitioner to the Candidates please help me with this I followed that document but it's not working
-
0
Hi,
I need a solution As we know when we create a project we will get the identity model in that we have a user, and role management this is in my main database and I have another model where I have the Candidate table which is in another database. in roles, I have a practitioner and I want to assign Practitioner to the Candidates please help me with this I followed that document but it's not working
This is no document for this because this is just your use case.
I think your question is how to access the main database(roles, users) in a module. I made an example for you: https://github.com/realLiangshiwei/Qa4516
- ModelA can access the roles&users by using the repository
- The ModelA requires the identity(pro) domain and entityframeworkcore package.
- The ModelA database has no users and roles, it is from the Mainapp database.
- Specify the connection string for the identity module.
- Pre-built application modules define constants for the connection string names. For example, the IdentityServer module defines a ConnectionStringName constant in the AbpIdentityServerDbProperties class (located in the Volo.Abp.IdentityServer namespace). Other modules similarly define constants, so you can investigate the connection string name
And as we Can See if I am Adding the Date Of Birth in Configure Extra property It's Showing DD-MM-YY-HH-MM-AM I need only DD-MM-YYYY can anyone suggest how to configure that....
Can you share the full steps to reproduce the problem? thanks.
-
0
@liangshiwei thanks for Your Valuable Replay Actually, four tables in one database I want to create the one is to one relationship between their tables each table is interconnected to each other if I delete one record of one table It should delete the respected records of another table i i want to generate the crud page for all this table
and regarding that Data time
OneTimeRunner.Run(() => { ObjectExtensionManager.Instance.Modules() .ConfigureIdentity(identity => { identity.ConfigureUser(user => { user.AddOrUpdateProperty<DateTime>("DateOfBirth", property => { var format = new DisplayFormatAttribute() { DataFormatString = "dd/MM/yyyy" }; property.Attributes.Add(format); //validation rules property.Attributes.Add(new RequiredAttribute()); property.DisplayName = new FixedLocalizableString("Date Of Birth"); property.DefaultValueFactory = () => DateTime.Now; //...other configurations for this property } ); }); }); }); }
i Have added this code again its showing same
Can you provide solution for this please Actually, four tables in one database I want to create the one is to one relationship between their tables each table is interconnected to each other if I delete one record of one table It should delete the respected records of another table i i want to generate the crud page for all this table
-
0
and regarding that Data time
You can try this:
user.AddOrUpdateProperty<DateTime>("DateOfBirth", property => { property.Attributes.Add(new DataTypeAttribute(DataType.Date)); //validation rules property.Attributes.Add(new RequiredAttribute()); property.DisplayName = new FixedLocalizableString("Date Of Birth"); property.DefaultValueFactory = () => DateTime.Now; //...other configurations for this property } );
Can you provide solution for this please Actually, four tables in one database I want to create the one is to one relationship between their tables each table is interconnected to each other if I delete one record of one table It should delete the respected records of another table i i want to generate the crud page for all this table
You should make sure that the modules' tables are all in the same database. once you create relationships for tables correct, they are cascaded deletes: https://learn.microsoft.com/en-us/ef/core/saving/cascade-delete
-
0
@liangshiwei Thanks For your replay Can you provide a solution for this, please? Actually, 1 four tables in one database I want to create the one is to one relationship between their tables each table is interconnected to each other if I delete one record of one table It should delete the respected records of another table I want to generate the crud page for all this table. want each and every table to connect one on one with the Table of Candidates. this is the main table I want all the tables to connect one on one to the Candidates' table. In the ABP suite, there is the only option of 1-N and N-N but how can I do 1-1 please help me with this... Thanks
-
0
Hi,
See: https://docs.abp.io/en/commercial/latest/abp-suite/generating-crud-page#navigation-properties
ABP Suite allows you to create a navigation property for 1-to-many (1:N) and many-to-many (N:N) relationships.
You can't do it with the ABP suite, but it's easy to do yourself:
public class MyEntity1 : AggregateRoot<Guid> { public MyEntity1(Guid id) { Id = id; } public string Name { get; set; } public Guid MyEntity2Id { get; set; } public virtual MyEntity2 MyEntity2 { get; set; } } public class MyEntity2 : AggregateRoot<Guid> { public MyEntity2(Guid id) { Id = id; } public string Name { get; set; } public Guid MyEntity1Id { get; set; } public virtual MyEntity1 MyEntity1 { get; set; } }
public DbSet<MyEntity1> MyEntityTest { get; set; } public DbSet<MyEntity2> MyEntityTest2 { get; set; } builder.Entity<MyEntity1>(b => { b.HasOne(x => x.MyEntity2) .WithOne(x => x.MyEntity1) .HasForeignKey<MyEntity2>(x => x.MyEntity1Id) .OnDelete(DeleteBehavior.Cascade); });
public class TestAppService : QaAppService { private readonly IRepository<MyEntity1> _myEntity1Repository; public TestAppService(IRepository<MyEntity1> myEntity1Repository) { _myEntity1Repository = myEntity1Repository; } public async Task CreateAsync() { var entity1Id = GuidGenerator.Create(); var entity2Id = GuidGenerator.Create(); var entity = new MyEntity1(entity1Id) { Name = "test", MyEntity2Id = entity2Id, MyEntity2 = new MyEntity2(entity2Id) { MyEntity1Id = entity1Id, Name = "test2" } }; await _myEntity1Repository.InsertAsync(entity); } public async Task DeleteAsync() { var entity = await (await _myEntity1Repository.GetQueryableAsync()).Include(x=>x.MyEntity2).FirstOrDefaultAsync(); await _myEntity1Repository.DeleteAsync(entity); } }
Deleting a Myentity1 will also delete the Myentity2, but, of course, not the other way around
Note: Only deleting the principal entity will cascade delete the dependent entity. Vice-versa is not possible.
If you want to delete any entity, the records of other tables will be deleted. You need to delete them manually.
-
0
Hi,
See: https://docs.abp.io/en/commercial/latest/abp-suite/generating-crud-page#navigation-properties
ABP Suite allows you to create a navigation property for 1-to-many (1:N) and many-to-many (N:N) relationships.
You can't do it with the ABP suite, but it's easy to do yourself:
public class MyEntity1 : AggregateRoot<Guid> { public MyEntity1(Guid id) { Id = id; } public string Name { get; set; } public Guid MyEntity2Id { get; set; } public virtual MyEntity2 MyEntity2 { get; set; } } public class MyEntity2 : AggregateRoot<Guid> { public MyEntity2(Guid id) { Id = id; } public string Name { get; set; } public Guid MyEntity1Id { get; set; } public virtual MyEntity1 MyEntity1 { get; set; } }
public DbSet<MyEntity1> MyEntityTest { get; set; } public DbSet<MyEntity2> MyEntityTest2 { get; set; } builder.Entity<MyEntity1>(b => { b.HasOne(x => x.MyEntity2) .WithOne(x => x.MyEntity1) .HasForeignKey<MyEntity2>(x => x.MyEntity1Id) .OnDelete(DeleteBehavior.Cascade); });
public class TestAppService : QaAppService { private readonly IRepository<MyEntity1> _myEntity1Repository; public TestAppService(IRepository<MyEntity1> myEntity1Repository) { _myEntity1Repository = myEntity1Repository; } public async Task CreateAsync() { var entity1Id = GuidGenerator.Create(); var entity2Id = GuidGenerator.Create(); var entity = new MyEntity1(entity1Id) { Name = "test", MyEntity2Id = entity2Id, MyEntity2 = new MyEntity2(entity2Id) { MyEntity1Id = entity1Id, Name = "test2" } }; await _myEntity1Repository.InsertAsync(entity); } public async Task DeleteAsync() { var entity = await (await _myEntity1Repository.GetQueryableAsync()).Include(x=>x.MyEntity2).FirstOrDefaultAsync(); await _myEntity1Repository.DeleteAsync(entity); } }
Deleting a Myentity1 will also delete the Myentity2, but, of course, not the other way around
Note: Only deleting the principal entity will cascade delete the dependent entity. Vice-versa is not possible.
If you want to delete any entity, the records of other tables will be deleted. You need to delete them manually.
@liangshiwei thanks for your replay
Actually, when I am running my application I am getting this exception please help me with This
The code is running fine with my other team but when I am trying to run the application i am getting this error
-
0
Hi,
You can check it: https://support.abp.io/QA/Questions/4483/After-login-It-is-not-redirecting-to-swagger-page#answer-0dac1928-15ab-ea7a-ad93-3a093a97493f
-
0
Hi,
You can check it: https://support.abp.io/QA/Questions/4483/After-login-It-is-not-redirecting-to-swagger-page#answer-0dac1928-15ab-ea7a-ad93-3a093a97493f
but I am running this application in local system my laptop
-
0
Hi,
The same applies to local
-
0
@liangshiwei thanks for your replay through That API Approach, I am able to create API and get the user Data through API Know I have One Candidate Table and I have created a CRUD page for that. The Data I am getting I want to show in the Candidate Table in the form of a Dropdown And the selected Value of the Dropdown I want to store in the Database are in Candidate Table Can you help me with this thing... can you update this thing in https://github.com/realLiangshiwei/Qa4516 this project only.
-
0
Hi,
I think the main question of this ticket is solved, I close the question. please create a new ,thanks.
-
0
@liangshiwei thanks for your replay through That API Approach, I am able to create API and get the user Data through API Know I have One Candidate Table and I have created a CRUD page for that. The Data I am getting I want to show in the Candidate Table in the form of a Dropdown And the selected Value of the Dropdown I want to store in the Database are in Candidate Table Can you help me with this thing... can you update this thing in https://github.com/realLiangshiwei/Qa4516 this project only.
-
0
Duplicate of https://support.abp.io/QA/Questions/4547/Navigation-Property-for-IdentityUser-in-other-database-table#answer-3a098ea7-e930-14aa-4e43-430a3d73ad1d