linq2dynamodb
linq2dynamodb copied to clipboard
A type-safe data context for AWS DynamoDB with LINQ and in-memory caching support. Allows to combine DynamoDB's durability with cache speed and read consistency
* No more bulk operations for CUD, using async tasks instead * Removing entities also respects version field * Update caching behavior to handle partial failure in optimistic locking scenario
DataContext.SubmitChanges() should fail, if there's a newer version of an entity in DynamoDB and/or in cache.
Fixes a few race condition bugs in DataContext, with ConcurrentDictionary.GetOrAdd as mentioned in MSDN. Also synchronised replacement of the static _cachedTableDefinitions field. We were occasionally getting the: ``` c# throw...
If a property is part of the primary key and also an index, there's an exception thrown when trying to determine the property converter. Example: ``` [DynamoDBHashKey("ColumnName", typeof(My.Project.Converter)] [DynamoDBGlobalSecondaryIndexHashKey("My-index-name", Converter...
If an entity has property names that are different from the key column names, you are supposed to use the [Amazon.DynamoDBv2.DataModel.DynamoDBHashKey] attribute, but it looks like you don't support this...
NOTE: I am unable to test this code as written because I don't have local instances of Memcached or Redis. Sorry. However, I did port the code I wrote for...
var table = l2dd.GetTable(); var utcNow = DateTime.UtcNow; var newRecord = new TestRecord { ByMinutePartition = StripToMinutes(utcNow), ExactTime = utcNow, Id = Guid.NewGuid() }; table.InsertOnSubmit(newRecord); l2dd.SubmitChanges(); var e = table.FirstOrDefault(record...
Would be nice to support custom TableLock storages and remove runtime-error when calling table.AcquireTableLock without cache implementation. The cases should be as follows: - No caching is required for record...
DynamoDb.DataModel's [DynamoDBVersion] attribute is used for Optimistic locking. Not only it can be used for Update operations, but also for Delete as well (throwing exception if record was modified/no longer...
Add transaction support by porting Amazon's java-based DynamoDB Transaction library and adapting it to use Microsoft's Transaction model.