Comments (5)
[Expression]
or [ExpressionMethod]
don't do the trick?
from linq2db.
With this code, the query works:
public static class CustomFieldsExtension
{
[Sql.Expression("CustomField1", PreferServerSide = true)]
public static string cf1_MyCustomerProperty(this WmsLoadCarrierDTO lc) => lc.CustomField1;
public static void cf1_SetMyCustomerProperty(this WmsLoadCarrierDTO lc, string value) => lc.CustomField1 = value;
[Sql.Expression("CustomDate1", PreferServerSide = true)]
public static DateTime? cd1_MyCustomerDate(this InfeedAdviceDTO iv) => iv.CustomDate1;
public static void cd1_SetMyCustomerDate(this InfeedAdviceDTO iv, DateTime? value) => iv.CustomDate1 = value;
}
but the update in the database does not:
var table = s.GetTable<WmsLoadCarrierDTO>());
var u = table.Set(x => x.cf1_MyCustomerProperty(), "test2");
u.Update();
Should this work? Is it an error that the Expression is not used here?
from linq2db.
Oh you want to set them also. I did not expect that to work, as [Expression]
is an arbitrary string (or arbitrary linq expression) but UPDATE can only set a field, which is a lot more restrictive.
Not sure what you can do if you don't want to declare those as properties on the data class.
Note that the first argument to .Set(p, v)
is an Expression
, so if you had an extension method that returns such extension it should work. Not the best but could be a workaround:
static Expression<Func<WmsLoadCarrierDto, string>> MyCustomerSetter => dto => dto.CustomField1;
db.GetTable<WmsLoadCarrierDto>()
.Set(MyCustomerSetter(), () => "ACME")
.Update();
from linq2db.
Better to use ExpressionMethod
with Sql.Property
public static class CustomFieldsExtension
{
[ExpressionMethod(nameof(cf1_MyCustomerPropertyImpl)))]
public static string cf1_MyCustomerProperty(this WmsLoadCarrierDTO lc) => lc.CustomField1;
static Expression<Func<WmsLoadCarrierDTO, string>> cf1_MyCustomerPropertyImpl()
=> dto => Sql.Property<string>(dto, nameof(WmsLoadCarrierDTO.CustomField1));
// other are similar
}
from linq2db.
works like a charm.
thanks
from linq2db.
Related Issues (20)
- Exception using Converter HOT 1
- Read some json values, Common Language Runtime detected an invalid program. HOT 5
- update documentation to show how to use fluent mapping HOT 1
- Enum Array insert/update
- Migrate table functions scaffold to `TableFromExpression`
- Default mappingschema is nog the first in the schema list HOT 4
- List of improvements for Preview 2 HOT 1
- Global Filters with Joins cause stack overflow when query cache is enabled
- Difference in resulting SQL when using LoadWith and LeftJoin HOT 1
- StringAggregate with GroupBy on SQL Server HOT 2
- DateTime not correctly handled in insert and update
- Query cache makes query filter Func irrelevant after first execution HOT 4
- Fluent mapper + expression based association fails when using generic IQueryable extension. Works when just accessing in Linq HOT 1
- Npgsql.PostgresException: '23505: duplicate key value violates unique constraint
- Unable to delete file SQLite.Interop.dll, access to the path '' is denied when trying to clean multi targeting (net472 and netstandard2.0) project HOT 1
- SQL-Server GroupBy-Query with nullable String-Key fails to create working SQL when used in an IN-Query instead of old EXISTS-Behaviour HOT 2
- Parameterization in PostgreSQL queries HOT 1
- Assign extra properties to the object leads to query parsing fail HOT 3
- Adding AsExpandable() from LinqKit with extra predicate leads to parsing fail HOT 1
- Wrong SQL is generated for sub-query HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from linq2db.