Frequently Asked Questions
Here you can find the answers to your questions, that we have found as the most frequent and useful for others.
General
Why it cannot be run on Android/iOS directly? (without Web API)
We also have prepared the versions for Android/iOS, but it is slightly less obfuscated and less optimized by the obfuscation process in order to be compatible with AOT (ahead-of-time) compilation, so it achieves even less performance compared with the official obfuscated version.
We have to consider the decision if to publish the versions for Android/iOS. For now, use your mobile application as a front-end (only) accessing a database through a Web API server.
When will the Java edition be ready?
We have insufficient capacities to start the development in Java, but we hope to deal with some investors soon. This project has no CSharp specific code and patterns that could not be refactored to Java.
What are the benefits of becoming a business partner?
To become a business partner contact us.
- You can gain extra hours of support, if you agree with the conditions of advertisement.
- You can advertise on this site.
- The bigger you are the better for you: We want to show that great companies use our software, so we are convinced that we can make a deal.
Errors
How to fix D3Error-001?
D3Error-001 :: None of the entity types from the current context ({0}) can navigate to the right query entity type ({1}). Some of the context types must contain a "many to one" or "one to many" property of type or generic type: {1} and also it must be reflected in EntityPropMappings. Maybe switch the order of building the aggregates or redefine the aggregates and regenerate EntityPropMappings.
Entity types {0} must be somehow related (by foreign key from one or another side) to currently joining entity {1}.
- Check if you are nesting the {1} specification context correctly:
- Align the building of the query in by the level of contexts and check correct placement of parentheses. It is not a LINQ query, so you can append anything to anything without a type error.
- Check if at least one of the current context's level entities has a relation to {1}.
- Current context's level entities are all the entities declared in the scope starting at opening parenthesis matching the context closing parenthesis where the scope ends.
- Check if you have EntityPropMappings.cs up to date and included in ID3Context.
How to fix D3Error-002?
D3Error-002 :: Left aggregate of type {0} that contains the property {1} was not included, yet. Please check correctness of your specification nesting. Left aggregates already included in the current context are: {2}
You have created a specification with D3Specification<TParent, TEntity>(D3Context, (TParent x) => x.{1}) but TParent was not included in the current context.
- Check if you are nesting the specification correctly - if you are in the right context matching expected parentheses in the builder.
- Check if you have EntityPropMappings.cs up to date and included in ID3Context.
How to fix D3Error-004?
D3Error-004 :: Could not find an ID property in the entity: {0}. Please check if your D3Context.EntityIdPropFormat reflects your solution's id prop names and if the entity have one.
You have probably inconsistent naming of id properties or the pattern D3Context.EntityIdPropFormat is not reflecting id properties which may have been generated from a database column names in a different way than you expected.
How to fix D3Error-008?
D3Error-008 :: Invalid Member Expression: Expected: entity => entity.Prop, got: {0}. Property Name: {1}
You cannot specify any delegate (action) you want in a lambda expression. You can only specify a direct member expression, see the examples:
- Correct: entity => entity.Prop
- Incorrect: entity => entity.Prop.GrandChildProp
- Incorrect: entity => entity.Method()
- Incorrect: entity => entity.Prop == constant
How to fix D3Error-035?
D3Error-035 :: Could not find the declaring type {0} of the aggregated property {1}. It is probably not defined in the same namespace as the other entities or DTOs and also not defined in D3Context's OtherModelNamespaces, which is not supported.
All the types of a single query specification has to be defined in the same namespace. For exceptional cases use ID3Context.OtherModelNamespaces where you define all the namespaces as plain strings, that contain types that appears in queries with a query root type from a different namespace.
How to fix D3Error-061?
D3Error-061 :: MySQL does not support bulk UPDATE or bulk DELETE operations on the same table specified in the filter FROM clause. We could not simplify the filter into just a single table, because the specification has join clause(s).
If using MySQL, you cannot specify a table you are updating or deleting data from in the WHERE clause. We have made a workaround for this case: we converts the SELECT statement of the query specification into the WHERE clause of the UPDATE or DELETE command. The limitation is, that the query specification must contain no joins with other entities.