Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Azure Cosmos task list #12086

Closed
42 of 82 tasks
smitpatel opened this issue May 21, 2018 · 8 comments
Closed
42 of 82 tasks

Azure Cosmos task list #12086

smitpatel opened this issue May 21, 2018 · 8 comments
Labels
closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. composite-issue A grouping of multiple related issues into one issue type-enhancement
Milestone

Comments

@smitpatel
Copy link
Contributor

smitpatel commented May 21, 2018

Note: This issue is to track smaller task items for EFCore.Cosmos.Sql provider. Use #8443 for discussions/questions.


2.2 Preview 1

  • Basic model building
  • Discriminator value by default
  • Enough metadata support for DDL (database can be created, deleted)
  • Query root converted to select expression
  • Translate WHERE
  • Query execution
  • SaveChanges
  • Need to figure out how to build our package using this infrastructure
  • Navigation rewrite handling of owned types needs to be different (no new query roots) Avoid creating new query roots in navigation rewrite for owned types #13000

2.2 Preview 2

  • Binding to JSON objects vs. value buffer (necessary for client-evaluating expressions)

2.2 Preview 3

  • Don't map PK to the id property by default, instead map it to a shadow AK and generate a GUID
  • Implement async query execution
  • Figure out sync pipeline for DDL/DML (underlying API is async) Cosmos.SQL: Implement Sync pipeline for DDL/DML #13160
  • ExecutionStrategy support
  • Switch to REST API
  • Preserve unmapped values (in the JSON) for updates
  • Materialize nested owned entity references and collections
  • Seeding (requires specifying 'id')
  • ToCollection API to map entities to collections explicitly

3.0 Preview 2

  • Switch from REST API to the new SDK, use custom user-agent
  • Set partition key to null by default
  • Remove ToContainer for owned types
  • Add ToProperty to configure the store property name. Empty value deactivates persistence.
  • Create 'id' value from PK values if not set (Cosmos DB: Issues with surrogate PK design in preview 3 #13633)
    • Add the discriminator of the root type of it's not part of the key
    • Escape the separator in the values
    • Ensure that we don't generate temporary values for the primary key

3.0 Preview 3

  • Handle value converters
  • Add type mapping
  • Fluent API to configure the store property name for embedded entities

3.0 Preview 4

3.0 Preview 7

  • Use the same CosmosClient instance per context configuration and expose it through Database
  • Fluent API to configure discriminator and use it in the convention (allow to remove discriminators for types not sharing a collection)
  • IsCosmos extension method
  • Partition key configuration API
  • Use a JSON wrapper instead of value buffers
  • Improve Coalesce translation (Cosmos: Coalesce works on undefined values rather than nulls #16152)

3.0 Preview 8

3.0 Preview 9

  • Add proper exception messages

Potential post-3.0 work

@smitpatel smitpatel self-assigned this May 21, 2018
@ajcvickers ajcvickers added this to the 2.2.0 milestone May 21, 2018
@AndriySvyryd AndriySvyryd self-assigned this Aug 14, 2018
@ajcvickers ajcvickers modified the milestones: 2.2.0-preview2, 2.2.0 Sep 11, 2018
@aidapsibr
Copy link

Probably don't call my tables Unicorn. 🦄 😄
image

@divega
Copy link
Contributor

divega commented Sep 19, 2018

@psibernetic Yes, we are planning to change that after preview. One possible solution is to name it after the derived DbContext type.

@aidapsibr
Copy link

Sounds like a great solution, thanks!

@kierenj
Copy link

kierenj commented Jun 3, 2019

Hi, I see on the announcement of 2.2 Preview 2 (https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-2-2-preview-2/) :

"No nesting of owned entities in documents: We are planning to use entity ownership to decide when an entity should be serialized as part of the same JSON document as the owner. In fact we are extending the ability to specify ownership to collections in 2.2. However this behavior hasn’t been implemented yet and each entity is stored as its own document."

This GH issue is then linked as a means to check the status of items, but I can't see any items here about nesting owned entities. Is this in place on the previews, or any non-preview version?

@AndriySvyryd
Copy link
Member

@kierenj It's implemented since 2.2 Preview 3

  • Materialize owned entity references and collections

@ajcvickers ajcvickers modified the milestones: 3.0.0, Epics Jun 28, 2019
AndriySvyryd added a commit that referenced this issue Jun 28, 2019
AndriySvyryd added a commit that referenced this issue Jul 17, 2019
Flatten out shaper expression visitors
Don't expand owned collection

Fixes #16620
Part of #12086
AndriySvyryd added a commit that referenced this issue Jul 17, 2019
Flatten out shaper expression visitors
Don't expand owned collection

Fixes #16620
Part of #12086
AndriySvyryd added a commit that referenced this issue Jul 18, 2019
Flatten out shaper expression visitors
Don't expand owned collection

Fixes #16620
Part of #12086
AndriySvyryd added a commit that referenced this issue Jul 18, 2019
Flatten out shaper expression visitors
Don't expand owned collection

Fixes #16620
Part of #12086
AndriySvyryd added a commit that referenced this issue Jul 19, 2019
Flatten out shaper expression visitors
Don't expand owned collection

Fixes #16620
Part of #12086
AndriySvyryd added a commit that referenced this issue Jul 27, 2019
AndriySvyryd added a commit that referenced this issue Jul 27, 2019
AndriySvyryd added a commit that referenced this issue Jul 27, 2019
Store the original JObject in a shadow property for embedded entities as well to allow to keep unmapped properties.

Fixes #13578
Part of #12086
AndriySvyryd added a commit that referenced this issue Jul 29, 2019
Store the original JObject in a shadow property for embedded entities as well to allow to keep unmapped properties.

Fixes #13578
Part of #12086
AndriySvyryd added a commit that referenced this issue Jul 29, 2019
Store the original JObject in a shadow property for embedded entities as well to allow to keep unmapped properties.

Fixes #13578
Part of #12086
@AndriySvyryd AndriySvyryd added the closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. label Aug 20, 2019
@AndriySvyryd
Copy link
Member

All the feature work planned for 3.0 has been completed.

@smitpatel smitpatel modified the milestones: Epics, 3.0.0 Aug 20, 2019
@ajcvickers ajcvickers modified the milestones: 3.0.0, 3.0.0-preview9 Aug 21, 2019
@ajcvickers ajcvickers modified the milestones: 3.0.0-preview9, 3.0.0 Nov 11, 2019
@mdarefull
Copy link

Is there an active task list or feed to subscribe to get notified as new features get added in general?

@AndriySvyryd
Copy link
Member

@mdarefull #19549

@AndriySvyryd AndriySvyryd added the composite-issue A grouping of multiple related issues into one issue label Apr 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. composite-issue A grouping of multiple related issues into one issue type-enhancement
Projects
None yet
Development

No branches or pull requests

7 participants